Ответ вслух Junior Области видимости и замыкания обновлено

Строгий режим

Вопрос

Что меняет строгий режим?

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

'use strict' превращает молчаливые ошибки в исключения: присваивание необъявленной переменной, запись в неизменяемое свойство, удаление неудаляемого. this в обычном вызове становится undefined вместо глобального объекта - это и ловит потерю контекста.

Что должно прозвучать в ответе

  • присваивание необъявленной переменной бросает ошибку

  • this в обычном вызове - undefined, а не globalThis

  • запрещены дубли параметров и восьмеричные литералы

  • молчаливые отказы записи становятся исключениями

  • модули и классы всегда строгие

Что могут спросить следом

  • Почему в модуле не нужно писать use strict
  • Что произойдёт с this в колбэке в строгом режиме
  • Как строгий режим помогает найти опечатку в имени переменной

Разбор

'use strict' превращает молчаливые ошибки в исключения: присваивание необъявленной переменной, запись в неизменяемое свойство, удаление неудаляемого. this в обычном вызове становится undefined вместо глобального объекта - это и ловит потерю контекста.

Запрещены дубли имён параметров, восьмеричные литералы вида 010, with. Модули ESM и тела классов строгие всегда, поэтому директиву в современном коде обычно не пишут.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.