⛔temporal dead zone
{
// TDZ (for `a`) starts
const f = () => console.log(a); // - OK: `a` hasn't been actually referenced.
let a = 3; // TDZ (for `a`) ends.
f(); // OK: `a` called outside TDZ.
}// ⭐ temporal dead zone (start)
// ------------------------------
// typeof aLet; // ⛔ ReferenceError: Cannot access 'aLet' before initialization
// typeof aConst; // ⛔ ReferenceError: Cannot access 'aConst' before initialization
// typeof aClass; // ⛔ ReferenceError: Cannot access 'aClass' before initialization
typeof undeclared; // ❗ 'undefined'
// ⭐ lexical declarations (let/const/class)
// --------------------------------------------
let aLet; // ⭐ initialized to `undefined`
const aConst = "hello";
class aClass {}Last updated