Строгий режим (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.