Back to questions
Middle+
1
Что такое Temporal Dead Zone (TDZ)? Из-за чего она появляется и как с этим бороться?
Companies where asked
НСПК
Answer from AI
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;
}