Skip to main content

Hoisting

Macht einige Arten von Variablen im Code zugänglich/verwendbar, bevor sie tatsächlich deklariert werden. “Variablen, die an den Anfang ihres Scopes gehoben werden”.
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:
DeklarationHoistedInitial ValueScope
function-DeklarationenJaEigentliche FunktionBlock (Strict Mode: ansonsten Funktion)
var VariablenJaundefinedFunktion
let und const VariablenNein<uninitialized>, TDZBlock
function-Ausdrücke und PfeilfunktionenAbhängig davon, ob var oder let/const verwendet wird

Temporal Dead Zone (TDZ)

Die Temporal Dead Zone