JavaScript-Hoisting

Hoisting (Hoisting) ist das Standardverhalten von JavaScript, bei dem Deklarationen nach oben verschoben werden.

JavaScript Deklarationen werden gehoben

In JavaScript kann eine Variable nach ihrer Verwendung deklariert werden.

Mit anderen Worten, kann es vor der Deklaration der Variable verwendet werden.

Beispiel 1 MitBeispiel 2 Die Ergebnisse sind gleich:

Beispiel 1

x = 5; // 5 zu x zuweisen
elem = document.getElementById("demo"); // Element suchen
elem.innerHTML = x;                     // x im Element anzeigen
var x; // Deklaration von x

Probieren Sie es selbst aus

Beispiel 2

var x; // Deklaration von x
x = 5; // 5 zu x zuweisen
elem = document.getElementById("demo"); // Element suchen
elem.innerHTML = x;                     // x im Element anzeigen

Probieren Sie es selbst aus

Um dies zu verstehen, müssen Sie den Begriff "Hoisting" verstehen.

Hoisting ist die Standardverhalten von JavaScript, bei dem alle Deklarationen in den aktuellen Bereich nach oben gehoben werden (nach oben in den aktuellen Skript oder die aktuelle Funktion gehoben werden).

die Schlüsselwörter let und const

mit let oder const Deklarierte Variablen und Konstanten werden nicht gehoben!

Bitte JS Let / Const Mehr über let und const im Text lesen.

JavaScript Initialisierung wird nicht gehoben

JavaScript hebt nur Deklarationen und nicht Initialisierungen an.

Beispiel 1 MitBeispiel 2 Die Ergebnisse sind unterschiedlich:

Beispiel 1

var x = 5; // x initialisieren
var y = 7; // Initialisierung von y
elem = document.getElementById("demo"); // Element suchen
elem.innerHTML = x + " " + y;           // Anzeige von x und y

Probieren Sie es selbst aus

Beispiel 2

var x = 5; // x initialisieren
elem = document.getElementById("demo"); // Element suchen
elem.innerHTML = x + " " + y;           // Anzeige von x und y
var y = 7; // Initialisierung von y 

Probieren Sie es selbst aus

Kann es sein, dass y in dem letzten Beispiel noch nicht definiert ist?

Dies ist weil nur die Deklaration (var y) und nicht die Initialisierung (=7) nach oben gehoben wird.

Durch Hoisting wird y vor seiner Verwendung bereits deklariert, aber da die Initialisierung nicht nach oben gehoben wurde, bleibt der Wert von y uninitialisiert.

Beispiel 2 ist ebenfalls gleich:

Beispiel

var x = 5; // x initialisieren
var y;     // y deklarieren
elem = document.getElementById("demo"); // Element suchen
elem.innerHTML = x + " " + y;           // Anzeige von x und y
y = 7;    // Wert 7 zu y zuweisen

Probieren Sie es selbst aus

Deklarieren Sie Ihre Variablen am Anfang!

Hoisting (für viele Entwickler) ist ein unbekanntes oder vernachlässigtes Verhalten in JavaScript.

Wenn Entwickler das Hoisting nicht verstehen, könnte das Programm Bugs (Fehler) enthalten.

Um Bugs zu vermeiden, deklarieren Sie bitte immer alle Variablen am Anfang eines Bereichs.

Da dies die Art und Weise ist, wie JavaScript Code interpretiert, halten Sie diese gute Gewohnheit bei.

JavaScript im strict-Modus erlaubt keine Verwendung von Variablen ohne vorherige Deklaration.

Lernen Sie bitte im nächsten Kapitel:use strict"