Что такое Strict mode в JavaScript?
Strict Mode в JavaScript — это специальный режим, который делает код более строгим и безопасным. Он вводит более строгие правила для обработки ошибок и помогает избежать потенциальных проблем. Этот режим был введён в ECMAScript 5 (ES5) и может применяться как ко всему скрипту, так и к отдельной функции.
Как включить Strict Mode?
Для активации строгого режима нужно добавить директиву:
// Строгий режим для всего скрипта
"use strict";
function test() {
// Строгий режим только внутри функции
"use strict";
}
Основные особенности Strict Mode
-
Запрещает использование неявно объявленных переменных:
- В строгом режиме переменные должны быть объявлены через
var
,let
, илиconst
."use strict"; x = 10; // Ошибка: x is not defined
- В строгом режиме переменные должны быть объявлены через
-
Запрещает дублирование имен параметров в функциях:
- Нельзя использовать одинаковые имена для параметров функции.
"use strict"; function sum(a, a) { // Ошибка: дублирование имени параметра return a + a; }
- Нельзя использовать одинаковые имена для параметров функции.
-
Запрещает удаление переменных и функций:
- Оператор
delete
нельзя использовать для удаления переменных, функций или аргументов."use strict"; var x = 5; delete x; // Ошибка: Нельзя удалить переменную }
- Оператор
-
this
в глобальном контексте:- В строгом режиме, если функция вызывается в глобальном контексте, значение
this
внутри неё будетundefined
, а не объект глобального контекста (например,window
в браузере)."use strict"; function f() { console.log(this); // undefined } f();
- В строгом режиме, если функция вызывается в глобальном контексте, значение
-
Запрещены зарезервированные слова:
- Нельзя использовать зарезервированные слова в качестве идентификаторов, например:
implements
,interface
,package
,private
, и другие.
- Нельзя использовать зарезервированные слова в качестве идентификаторов, например:
Модули и классы в ES6+ по умолчанию работают в строгом режиме. Тем не менее, использование строгого режима остаётся полезным в других контекстах.
Вы уверены?
Элемент будет удален из базы данных навсегда. Вернуть его будет невозможно.