Hoisting und Temporal Dead Zone (TDZ)
Zuletzt aktualisiert
Zuletzt aktualisiert
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:
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