Загрузка…
Загрузка…
Ранний JS прощал многое: опечатка в имени переменной тихо создавала глобал, this «утекал» в window, with делал код непрозрачным. Strict mode чинит самые болезненные наследия без ломания старых скриптов (включается явно / в модулях).
usre = {} упадёт, а не создаст window.usre.this — в обычном вызове undefined, проще искать баги с контекстом.with, октальные литералы вида 0123 и т.п."use strict";
function save(user) {
// опечатка не уйдёт в глобал
usre.name = "Ann"; // ReferenceError
}Скажите: «strict — режим с жёсткими правилами; модули и классы уже в нём; цель — меньше скрытых side effects и безопаснее код».
Итог: строгий режим нужен, чтобы ошибки всплывали сразу, а не превращались в странные баги в runtime.
