JavaScript-Hoisting
- Vorherige Seite JS-Bereich
- Nächste Seite JS-strict-Modus
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
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
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!
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
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
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
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"
- Vorherige Seite JS-Bereich
- Nächste Seite JS-strict-Modus