Зачем нужен строгий режим (use strict) и как его включать

Строгий режим (Strict Mode) — это ограниченный вариант JavaScript, который помогает писать более безопасный и чистый код. Он отключает некоторые «плохие» части языка и выбрасывает ошибки там, где раньше поведение было молчаливым.

Как включить строгий режим

Директива "use strict"; пишется первой строкой в файле или в начале функции. В модулях ES6 строгий режим включен по умолчанию.

function myFunc() {
  "use strict";
  // Код в строгом режиме
}

Основные отличия

1 Запрет неявных глобальных переменных.

function test() {
  x = 10; // Ошибка в strict, создаст глобальную в normal
}

Это предотвращает загрязнение глобальной области видимости из-за опечаток.

2 Запрет дублирования параметров.

function sum(a, a) { ... } // SyntaxError в strict

3 Безопасный this.
В обычном режиме this в функции равен глобальному объекту (window). В строгом режиме он undefined.

function show() { console.log(this); }
show(); // undefined (strict), Window (normal)

Это помогает избежать случайного изменения глобального объекта.

4 Запрет удаления неотключаемых свойств.
Попытка delete Object.prototype вызовет ошибку.

Почему это важно

Использование строгого режима делает код более предсказуемым. Многие ошибки, которые в обычном режиме проявлялись бы только в продакшене через неделю, в строгом режиме выбрасываются сразу при разработке. Современные линтеры (ESLint) часто требуют или эмулируют правила строгого режима. Всегда пишите новый код в строгом режиме или используйте модули ES6.