> Что такое 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.

Пример:

JAVASCRIPT
console.log(a); // ReferenceError: Cannot access 'a' before initialization
let a = 5;

В этом коде a находится в TDZ с начала скрипта до строки let a = 5;. Аналогично работает const, но его TDZ ещё строже из-за обязательной инициализации при объявлении.

TDZ также проявляется в параметрах функций по умолчанию:

JAVASCRIPT
function test(x = y, y = 1) {
// x находится в TDZ, пока не инициализируется y
}
test(); // ReferenceError: Cannot access 'y' before initialization

Понимание TDZ помогает избежать ошибок и писать более предсказуемый код, особенно при работе с блочной областью видимости.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью