Loading...

use-strict

Катуу режим - "use strict"

Узак убакыт бою JavaScript артка шайкештик көйгөйлөрү жок өнүккөн. Тилге жаңы функциялар кошулду, ал эми эски функция өзгөргөн жок.

Бул ыкманын артыкчылыгы болгон код иштей берген. Ал эми кемчилиги JavaScript түзүүчүлөрү тарабынан кабыл алынган ар кандай ката же жеткилең эмес чечим тилде түбөлүккө тыгылып калат.

Бул ECMAScript 5 (ES5) пайда болгон 2009-жылга чейин болгон. Ал тилге жаңы функцияларды кошуп, айрымдарын өзгөрткөн. Эски код мурункудай иштешин камсыз кылуу үчүн, мындай өзгөртүүлөр демейки боюнча колдонулбайт. Ошондуктан, биз аларды атайын директива менен ачык иштетишибиз керек: "use strict".

 

"use strict"

Директива сапка окшош: "use strict" же ‘use strict ‘. Ал скрипттин башында болгондо, бүт скрипт "заманбап" режимде иштейт.

Мисалы:

@A@

"use strict";

 

// бул код заманбап режимде иштейт

@A@

Кийинчерээк биз функциялар (буйруктарды топтоо жолу) жөнүндө билебиз. Алдыга көз чаптырсак, бардык скрипттин ордуна функциялардын көпчүлүк түрлөрүнүн башында "колдонуу катуу" болушу мүмкүн экенин белгилейбиз. Бул катуу режимди белгилүү бир функцияда гана иштетүүгө мүмкүндүк берет. Бирок, адатта, адамдар аны бүт файл үчүн колдонушат.

Башында "колдонуу катуу" экенин текшериңиз

"Use strict" скрипттин биринчи аткарылуучу сабында экенин текшериңиз, антпесе катуу режим иштетилбей калышы мүмкүн.Бул жерде катуу режим иштетилген эмес:

@A@

alert("кээ бир код");

// "use strict" төмөндө этибарга алынбайт - ал биринчи сапта болушу керек

 

"use strict";

 

// катуу режим иштетилген эмес

@A@

Үстүндө "use stict" гана комментарий жазууга болот.

Катуу колдонууну жокко чыгаруунун жолу жок

Кыймылдаткычты эски жүрүм-турумга кайтара турган "no use strict" сыяктуу директивалар жок.

Биз катуу режимге киргенден кийин, аны жокко чыгарууга эч кандай жол жок.

Браузер консолу

Кийинчерээк, функцияларды сыноо үчүн браузер консолун колдонгондо, демейки боюнча катуу колдонуу өчүрүлгөнүн эске алыңыз.

Кээде катаал материалдарды колдонгондо, сиз туура эмес жыйынтыктарды ала аласыз.

Ошентип, консолдо катуу колдонууну кантип иштетсе болот?

Сиз Shift+Enter баскычтарын колдонуп, бир нече саптарды киргизип, үстүнкү сапка катуу колдонууну жазсаңыз болот:

 

'use strict'; <Жаңы сапка өтүү үчүн Shift+Enter>

// ...сенин кодуң...

<enter>

Көпчүлүк браузерлерде, анын ичинде Chrome жана Firefox, бул иштейт.

Эгерде мындай болбосо, мисалы, эски браузерде, катаал колдонууну ишке ашыруунун начар, бирок ишенимдүү жолу бар. Аны төмөнкү таңгычка салыңыз:

@A@

(function() {

  'use strict';

 

  // ...сенин кодуң...

})( )

@A@

Ар дайым "use strict" дегенди колдонуу керекпи?

бул риторикалык  суроолорго окшойт, бирок андай эмес.

Кимдир бирөө сизге ар бир сценарийди "use strict" менен баштоону кеңеш берет ... Бирок андан жакшы жолу бар.

Заманбап JavaScript катаал режимди автоматтык түрдө иштеткен "класстарды" жана "модулдарды" - өркүндөтүлгөн тил структураларын (албетте, биз аларга жетебиз) колдойт. Демек, аларга «use strict» директивасын кошуунун кереги жок.Жыйынтыктап айтканда: "use strict" дегенди кошуу дагы эле жакшы болот; сценарийлериңиздин башында. Кийинчерээк, сиздин бардык кодуңуз класстардан жана модулдардан турганда, директиваны өткөрүп жиберсеңиз болот.

Азырынча биз катуу колдонууну жалпы мааниде гана билдик.

Кийинки бөлүмдөрдө тилдин өзгөчөлүктөрү тууралуу билимибизди кеңейткен сайын, катуу режим менен стандарттык режимдин ортосундагы айырманы айкыныраак көрөбүз. Бактыга жараша, алардын саны көп эмес жана бардыгы иштеп чыгуучунун жашоосун жакшыртат.

Бул окуу куралындагы бардык мисалдар, эгерде (өтө сейрек) башкача белгиленбесе, катуу режимде аткарылышын болжолдойт.