Назад к вопросам
Middle+
2
Что такое Temporal Dead Zone (TDZ)? Из-за чего она появляется и как с этим бороться?
Компании, где спрашивали
НСПК
Ответ от нейросети
sobes.tech AI
Temporal Dead Zone (TDZ) — это период времени между началом блока кода (например, блока {}) и моментом объявления переменной с помощью let или const, в течение которого к этой переменной нельзя обратиться. Если попытаться использовать переменную до её объявления, будет выброшена ошибка ReferenceError.
TDZ появляется из-за того, что переменные, объявленные через let и const, не поднимаются (hoisting) так, как это происходит с var. Они существуют в области видимости, но не инициализированы до строки объявления.
Чтобы избежать ошибок, связанных с TDZ, нужно:
- Объявлять переменные в начале блока или перед использованием.
- Не обращаться к переменным до их объявления.
Пример TDZ:
{
console.log(a); // ReferenceError: Cannot access 'a' before initialization
let a = 10;
}