Что такое временная мёртвая зона (TDZ) в JavaScript
Что такое Temporal Dead Zone (TDZ)?
TDZ (Temporal Dead Zone) — это период времени между началом области видимости переменной (например, блок if, for, функция и т. д.) и её фактической инициализацией, в течение которого к переменной нельзя обращаться.
Эта зона возникает при использовании let или const.
Простой пример
console.log(x); // ❌ ReferenceError: Cannot access 'x' before initialization
let x = 10;
Хотя переменная x объявлена, вы получаете ошибку, потому что вы обратились к ней до инициализации — вы находитесь во временной мёртвой зоне.
TDZ применяется к:
letconst- Параметрам в функциях с деструктуризацией
- Классам, объявленным через
class
Вывод
| Тип переменной | Поднимается | Инициализируется | TDZ существует |
|---|---|---|---|
var | Да | undefined | Нет |
let | Да | Нет | Да |
const | Да | Нет | Да |
Важно:
TDZ — причина, по которой let и const более безопасны, чем var: вы не можете использовать переменные до их объявления, и это предотвращает ошибки.