> Что такое temporal dead zone (TDZ) в JavaScript (JavaScript)
Уровень: junior · Роль: frontend · Категория: Технические вопросы
Компании: 1221 Systems
Стек: JavaScript
> Пример ответа
Temporal Dead Zone (TDZ) - это область видимости от начала блока (или функции) до момента фактического объявления переменной, где переменная существует, но к ней нельзя обратиться. Она возникает для переменных, объявленных через let и const, а также для классов.
В отличие от var, которые «всплывают» (hoisting) и инициализируются значением undefined, переменные с let и const тоже всплывают, но остаются неинициализированными (uninitialized) до выполнения строки с их объявлением. Попытка доступа к ним в TDZ выбрасывает ReferenceError.
Пример:
JAVASCRIPTconsole.log(a); // ReferenceError: Cannot access 'a' before initializationlet a = 5;
В этом коде a находится в TDZ с начала скрипта до строки let a = 5;. Аналогично работает const, но его TDZ ещё строже из-за обязательной инициализации при объявлении.
TDZ также проявляется в параметрах функций по умолчанию:
JAVASCRIPTfunction test(x = y, y = 1) {// x находится в TDZ, пока не инициализируется y}test(); // ReferenceError: Cannot access 'y' before initialization
Понимание TDZ помогает избежать ошибок и писать более предсказуемый код, особенно при работе с блочной областью видимости.
> Похожие задачи по frontend
Какие особенности у JSON
Как понимать ошибку в ответе с параметром direction в JSON
Как передаются массивы в JSON
В чем разница между статическими и нестатическими методами в классах JavaScript
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью