Употреба на „Strict“

  „use strict“; определя, че JavaScript кода ще бъде изпълнен в така нареченият строг режим .

„use strict“ директивата

„use strict“ директивата е новост в JavaScript 1.8.5 (ECMAScript версия 5). Това не е изявление, а буквалното изразяване, пренебрегнато от по-ранни версии на JavaScript. Целта на „use strict“ е да покаже, че кодът трябва да бъде изпълнен в „строг режим“. Със строг режим, не можете, например, да използвате недекларирани променливи. Строг режим се поддържа в: Internet Explorer от версия 10 на Firefox от версия 4.. Chrome от версия 13 Safari от версия 5.1.. Opera от версия 12.


Деклариране на Strict Mode

Строг режим е обявен чрез добавяне на „use strict“; в началото на файл с JavaScript, или функция на JavaScript. Обявена в началото на файл с JavaScript, тя има глобален обхват (целия код ще се изпълни при стриктен режим). Обявена вътре във функция, тя има локален обхват (само кода в тялото на функцията е в строг режим). Global декларация:

Local декларация:


„use strict“; Синтаксис

Синтаксисът, за деклариране на строг режим, е проектиран да бъде съвместим с по-старите версии на JavaScript. Стриктния режим има значение само за новите компилатори, които разбират смисъла от него.


Защо Strict Mode?

Строг режим го прави по-лесно да се напише „сигурен“ JavaScript. Този режим променя грешките, които са били приемани преди в грешки. Преди ако допуснем правописна грешка при писане на код, JS ще създаде глобална променлива с новото име. При строгия режим се изведе грешка за несъществуваща променлива. При нормален JavaScript режим, разработчика няма да получи известие ако допусне някаква подобна грешка. При стриктен режим всяко действие, което не е правилно ще изведе грешка.


Не е позволено в Strict Mode

Използването на променлива (собственост или обект), без да я декларирате, не се разрешава:

Изтриване на променлива, функция, или аргумент, не е позволено.

Дефиниране на пропърти повече от един път, не е позволено:

Копиране на име на параметър не се допуска:

OCTAL числови литерали и вмъкване на знаци не са разрешени:

Добавяне към read-only пропърти не се допуска:

Писане на GET-only пропърти, които не се допуска:

Изтриването на undeletable пропърти не се допуска:

„Eval“ не може да се използва като променлива:

„arguments“ не могат да бъдат използвани като променлива:

with не се разрешава:

Бъдещи запазени ключови думи не са позволени. Това са:

  • implements
  • interface
  • package
  • private
  • static
  • public
  • static
  • yield

Други разлики

От съображения за сигурност, под строг режим на код, eval не създава нова променлива в обхвата от която тя е била извикана. Със строг режим, не можете, например, да използвате недекларирани променливи.
„use strict“ директивата се извиква само в началото на скрипта или функция. Ако добавите два JavaScript файла в един файл, ще загубите ефекта на директивата във втория файл.

Вижте още