Что такое use strict?
Основы языка
`'use strict'` — директива, включающая строгий режим JavaScript, который делает язык менее «прощающим»: превращает часть тихих ошибок в исключения и запрещает небезопасные конструкции.
Как включить
Строкой в начале файла или функции:
'use strict';В ES-модулях и классах strict mode включён автоматически.
Что меняет
- Необъявленные переменные — присваивание без
var/let/constкинетReferenceError(без strict создало бы глобальную). - this в обычном вызове —
undefinedвместоglobalThis. - Запрещены дубли параметров, восьмеричные литералы
010. - Присваивание в read-only свойства и защищённые глобали кидает ошибку.
- Нельзя использовать
with. deleteпеременной/функции — ошибка.
'use strict';
x = 10; // ReferenceError: x is not definedЗачем нужен
- Раньше ловит ошибки.
- Делает код предсказуемее и безопаснее.
- Оптимизации движка.
Коротко для собеседования
'use strict' включает строгий режим: необъявленные переменные и присваивания в read-only кидают ошибки, this в обычном вызове — undefined, запрещены дубли параметров и with. В модулях и классах включён автоматически.