Строгий режим (use strict)
Директива 'use strict';
включает режим соответствия стандарту ES5.
- Заменяет исключениями некоторые ошибки, которые интерпретатор JavaScript ранее пропускал;
- В некоторых случаях код в строгом режиме может быть оптимизирован для более быстрого выполнения;
- Запрещает использовать некоторые элементы синтаксиса.
Строгий режим можно применить как ко всем скрипту (директива в начале файла), так и к отдельным функциям (дириктива в начале функции). Однако, в последнем варианте появились исключения (см. es2016).
Что является ошибкой в строгом режиме
Внимание: список не полный!
mistypedVaraible = 17
— не явное определение переменной;- Любоая попытка присвоения значения свойству, защищённому от записи; присваивание значения свойству, доступному только на чтение; присваивание нового свойства нерасширяемому объекту. Например,
NaN = null
; - Попытка удаления неудаляемого, например
delete Object.prototype
; - Несколько свойств с одинаковыми именами, например
{a:1,a:2}
; - Несколько аргументов с одинаковыми именами, например
function (a,a,b) {}
; - Восьмеричные числа, например
0644
; - Использование
with
; - Удаление переменных, например
var x; delete x;
; arguments.callee
;