use strict

use strict — директива, которая включает строгий режим вывода ошибок.

Например, при создании переменной без ключевых слов var или let, по умолчанию это не будет ошибкой (раньше предполагалось, что так можно делать). В современном стандарте это считается ошибкой, и чтобы JavaScript возвращал ошибку, надо прописывать use strict.

"use strict";

x = 5; // error: x is not defined

Также директива не позволяет создавать функции с одинаковыми атрибутами.

"use strict";

// функция с одинаковыми атрибутами
function sum(a, a) {
  return a + a;
}
// Uncaught SyntaxError: Duplicate parameter name not allowed in this context

Директиву «use strict» надо включать в самом начале JavaScript-кода, иначе она не сработает.

Также директиву «use strict» можно включить внутри функций, тогда строгий режим будет работать только внутри текущей функции.

function functionNmae() {
  "use strict";
  // код функции будет работать в строгом режиме
}

// код вне функций будет работать в обычном режиме, если до этого не был вызван строгий режим

Если директива use strict была вызвана, то её отключить будет нельзя.

Директива «use strict» появилась в стандарте EcmaScript 5.