Директива use strict
"use strict";
// этот код будет работать по современному стандарту ES5
Отличия строгого и неограниченного режима:
- нельзя использовать необъявленную переменную
так можно:
var i = 0;
а так нельзя
i = 0;
- нельзя дублировать ключи в объекте
(function() {
"use strict";
var x = {
a: 1,
b: 2,
a: 3
}
}());
- нельзя дублировать аргументыfunction sum(a, a) {...
- нельзя переназначать аргументы
function a(x) {
arguments[0] = 2;
console.log(x); // напечатает 2
}
function b(x) {
"use strict";
arguments[0] = 2;
console.log(x); // напечатает 1
}
a(1);
b(1);
Другие отличия по этим ссылкам
В чем различие между строгим режимом и неограниченным режимом?
Использование "use strict" в JavaScript
Переход к строгому режиму
Strict mode
ES6: Перед тем, как вы начнёте