Что такое `Temporal Dead Zone` и Hoisting? На какие сущности распространяется `TDZ` а на какие `hoisting`?
СобеседованиеОбласть видимости и замыканияПеременные и типы данных
- Hoisting – это механизм при котором интерпретатор во время фазы компиляции определяет все объявления переменных и функций и регистрирует их в соответствующей области видимости до начала выполнения кода
var - происходит инициализация значением undefined в начале выполнения кода
function declaration полностью определяется в начале
Temporal Dead Zone - это период времени в процессе исполнения кода, когда переменная, объявленная через let или const, уже определена во внутренней структуре области видимости, но ещё не инициализирована
TDZ распространяется на const let и Class