Hoisting und Temporal Dead Zone (TDZ)

Hoisting

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:

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)

Die Temporal Dead Zone

Zuletzt aktualisiert