In diesem Tutorial lernen Sie anhand von Beispielen das Heben von JavaScript kennen.
Das Heben in JavaScript ist ein Verhalten, bei dem eine Funktion oder eine Variable vor der Deklaration verwendet werden kann. Beispielsweise,
// using test before declaring console.log(test); // undefined var test;
Das obige Programm funktioniert und die Ausgabe ist undefiniert. Das obige Programm verhält sich wie folgt
// using test before declaring var test; console.log(test); // undefined
Da der Variablentest nur deklariert ist und keinen Wert hat, undefined
wird ihm ein Wert zugewiesen.
Wenn Sie mehr über Variablen erfahren möchten, besuchen Sie JavaScript-Variablen.
Hinweis : Beim Heben scheint die Deklaration im Programm nach oben verschoben worden zu sein. Tatsächlich werden jedoch die Funktions- und Variablendeklarationen während der Kompilierungsphase zum Speicher hinzugefügt.
Variables Heben
In Bezug auf Variablen und Konstanten wird das Schlüsselwort var
gehisst let
und const
erlaubt kein Heben.
Beispielsweise,
// program to display value a = 5; console.log(a); var a; // 5
Im obigen Beispiel wird die Variable a verwendet, bevor sie deklariert wird. Und das Programm funktioniert und zeigt die Ausgabe 5 an. Das Programm verhält sich wie folgt:
// program to display value var a; a = 5; console.log(a); // 5
In JavaScript werden Initialisierungen jedoch nicht gehisst. Beispielsweise,
// program to display value console.log(a); var a = 5;
Ausgabe
nicht definiert
Das obige Programm verhält sich wie folgt:
var a; console.log(a); a = 5;
In der Kompilierungsphase wird nur die Deklaration in den Speicher verschoben. Daher liegt der Wert der Variablen a darin, undefined
dass a gedruckt wird, ohne es zu initialisieren.
Wenn die Variable innerhalb der Funktion verwendet wird, wird sie nur an den oberen Rand der Funktion angehoben. Beispielsweise,
// program to display value var a = 4; function greet() ( b = 'hello'; console.log(b); // hello var b; ) greet(); // hello console.log(b);
Ausgabe
Hallo Ungefangener Referenzfehler: b ist nicht definiert
Im obigen Beispiel wird die Variable b an den Anfang der Funktion greet
gehoben und wird zu einer lokalen Variablen. Daher ist b nur innerhalb der Funktion zugänglich. b wird keine globale Variable.
Weitere Informationen zu lokalen und globalen Variablen finden Sie unter JavaScript-Variablenbereich.
Hinweis : Beim Heben ist die Variablendeklaration nur für den unmittelbaren Bereich zugänglich.
Wenn eine Variable mit dem let
Schlüsselwort verwendet wird, wird diese Variable nicht angehoben. Beispielsweise,
// program to display value a = 5; console.log(a); let a; // error
Ausgabe
Nicht erfasster Referenzfehler: Vor der Initialisierung kann nicht auf 'a' zugegriffen werden
Während der Verwendung let
muss die Variable zuerst deklariert werden.
Funktion Heben
Eine Funktion kann vor dem Deklarieren aufgerufen werden. Beispielsweise,
// program to print the text greet(); function greet() ( console.log('Hi, there.'); )
Ausgabe
Hallo
Im obigen Programm wird die Funktion greet
vor dem Deklarieren aufgerufen und das Programm zeigt die Ausgabe an. Dies ist auf das Heben zurückzuführen.
Wenn jedoch eine Funktion als Ausdruck verwendet wird , tritt ein Fehler auf, da nur Deklarationen hochgezogen werden. Beispielsweise;
// program to print the text greet(); let greet = function() ( console.log('Hi, there.'); )
Ausgabe
Nicht gefangener Referenzfehler: Begrüßung ist nicht definiert
Wenn var
im obigen Programm verwendet würde, wäre der Fehler:
Nicht gefangener TypeError: Begrüßung ist keine Funktion
Hinweis : Im Allgemeinen wird das Heben nicht in anderen Programmiersprachen wie Python, C, C ++, Java durchgeführt.
Das Heben kann zu unerwünschten Ergebnissen in Ihrem Programm führen. Und es ist am besten, zuerst Variablen und Funktionen zu deklarieren, bevor Sie sie verwenden, und ein Heben zu vermeiden.
Bei Variablen ist es besser zu verwenden let
als var
.