Hoisting und Temporal Dead Zone (TDZ)
Hoisting
Hinter den Kulissen geschieht nun Folgendes: Vor der Ausführung wird der Code nach Variablendeklarationen durchsucht und für jede Variable wird eine neue Eigenschaft im Variable Environment Object erstellt.
Jedoch funktioniert Hoisting nicht für alle Variablentypen gleich:
Hoisted
Initial Value
Scope
function-Deklarationen
✔️
Eigentliche Funktion
Block (Strict Mode: ansonsten Funktion)
var Variablen
✔️
undefined
Funktion
let und const Variablen
🚫
<uninitialized>, TDZ
Block
function-Ausdrücke und Pfeilfunktionen
🤷♂️ Abhängig davon, ob `var` oder `let`/`const` verwendet wird
Temporal Dead Zone (TDZ)

Last updated