Что такое Strict mode в JavaScript?

Strict Mode в JavaScript — это специальный режим, который делает код более строгим и безопасным. Он вводит более строгие правила для обработки ошибок и помогает избежать потенциальных проблем. Этот режим был введён в ECMAScript 5 (ES5) и может применяться как ко всему скрипту, так и к отдельной функции.

Как включить Strict Mode?

Для активации строгого режима нужно добавить директиву:

// Строгий режим для всего скрипта
"use strict";

function test() {
  // Строгий режим только внутри функции
  "use strict";
}

Основные особенности Strict Mode

  1. Запрещает использование неявно объявленных переменных:

    • В строгом режиме переменные должны быть объявлены через var, let, или const.
      "use strict";
      x = 10; // Ошибка: x is not defined
  2. Запрещает дублирование имен параметров в функциях:

    • Нельзя использовать одинаковые имена для параметров функции.
      "use strict";
      function sum(a, a) { // Ошибка: дублирование имени параметра
      return a + a;
      }
  3. Запрещает удаление переменных и функций:

    • Оператор delete нельзя использовать для удаления переменных, функций или аргументов.
      "use strict";
      var x = 5;
      delete x; // Ошибка: Нельзя удалить переменную
      }
  4. this в глобальном контексте:

    • В строгом режиме, если функция вызывается в глобальном контексте, значение this внутри неё будет undefined, а не объект глобального контекста (например, window в браузере).
      "use strict";
      function f() {
      console.log(this); // undefined
      }
      f();
  5. Запрещены зарезервированные слова:

    • Нельзя использовать зарезервированные слова в качестве идентификаторов, например: implements, interface, package, private, и другие.

Модули и классы в ES6+ по умолчанию работают в строгом режиме. Тем не менее, использование строгого режима остаётся полезным в других контекстах.