Что такое "Temporal Dead Zone" в JavaScript?
Уровень: Senior
Ответ
Temporal Dead Zone (TDZ) – это период времени от начала области видимости (например, функции или блока) до момента фактического объявления переменной `let` или `const`, в течение которого переменная существует, но недоступна для использования. Если попытаться обратиться к переменной в TDZ, возникнет ReferenceError. Проще: переменные let/const поднимаются логически, но не инициализируются. Это объясняет, почему нельзя использовать переменную, объявленную через let, до её строчки объявления. TDZ заканчивается, когда исполнение кода достигает строки объявления переменной – тогда она инициализируется. Этот механизм сделан для предотвращения доступа к переменной до её явного объявления, в отличие от var, которое при hoisting инициализируется undefined.