Why was the TDZ introduced in JavaScript?
To prevent bugs caused by accessing variables before declaration. Pre-ES6, var silently returned undefined in that case. The TDZ forces declare-before-use and surfaces the mistake as a clear ReferenceError.
Verify This Answer
Cross-check this information using these trusted sources:
More FAQs in Temporal Dead Zone (TDZ) in JavaScript Explained
The period between entering a scope where a let or const variable is declared and reaching the declaration line. Accessing the variable during this period throws a ReferenceError.
No. var is initialized to undefined during the memory allocation phase, so accessing it early returns undefined instead of throwing. Only let and const have a TDZ.
ReferenceError: Cannot access 'x' before initialization. It is thrown when you try to read or use a let or const variable before its declaration line.
Still have questions?
Browse all our FAQs or reach out to our support team
