Как это устроено
Strict mode ("use strict") — режим выполнения JS с более жёсткими правилами: часть «молчаливых» ошибок становится явными исключениями, а некоторые устаревшие/опасные конструкции запрещены.
Что меняется (главное)
| Без strict | Со strict |
|---|
| Присвоение необъявленной переменной создаёт global | ReferenceError |
this в обычном вызове → globalThis / window | this → undefined |
| Дубли имён параметров допустимы | ошибка |
with разрешён | запрещён |
delete неудаляемого — тихий fail | TypeError |
Где он уже «включён»
- ES-модули (
import/export) — всегда strict.
- Тела классов — strict.
- Многие бандлеры/современный код живут в этом мире по умолчанию.
Итог: strict mode — «безопаснее и предсказуемее»: меньше случайных глобалов и скрытых багов за счёт явных ошибок.