Warum die globalen Variablen in JavaScript undefinierte Werte liefern
JavaScript ist eine der ältesten Programmiersprachen. Da es vom Browser kompiliert und ausgeführt wird, unterscheidet es sich etwas von den Systemsprachen wie C oder Java.
Das Verhalten der Programmiersprache JavaScript kann für viele Programmieranfänger etwas seltsam sein. Um die JavaScript-Sprache vollständig zu verstehen, müssen Sie verschiedene Konzepte dieser Sprache wie Ereignisschleife, Bubbling und Capturing, Call Stack und viele mehr gründlich verstehen.
In diesem Artikel lernen wir ein solches Konzept der JavaScript-Programmiersprache namens Hoisting kennen. Bevor wir darauf eingehen, warum die globalen Variablen undefined
Werte liefern, wollen wir zunächst das Konzept des Hebens in JavaScript verstehen.
Konzept des Hebens und warum die globalen Variablen in JavaScript undefined
Werte liefern
Hosting ist ein Konzept in JavaScript, bei dem alle im JavaScript-Code vorhandenen Variablendeklarationen herausgenommen und während der Kompilierzeit einem undefined
Wert zugewiesen werden. Ebenso werden alle Funktionsdeklarationen in JavaScript herausgenommen und im globalen Bereich gespeichert.
Dies wird als variables Heben bezeichnet. Dies ist unabhängig davon, ob der Variablen- oder Funktionsumfang lokal oder global ist.
Lassen Sie uns nun verstehen, wie das Hosting-Konzept in JavaScript funktioniert und wie es Variablen in JavaScript undefined
Werte zuweist. Im folgenden Codebeispiel haben wir eine globale Variable namens abc
und eine Funktion a()
definiert.
let abc;
function a() {
console.log('This is a function...');
}
console.log(abc);
debugger
abc = 5;
console.log(abc);
Ausgabe:
undefined
5
Ist Ihnen hier schon aufgefallen, dass Sie die Variable abc
verwenden können, bevor sie initialisiert wird? Haben Sie sich jemals gefragt, wie das möglich ist?
Dieses Ding ist in anderen Programmiersprachen nicht erlaubt. Der Grund dafür ist das Heben.
Der obige Code stellt die erste Konsolenanweisung dar. Hier ist das Hinzufügen eines Debuggers wichtig, um den Status der Variablen in den Chrome-Entwicklungstools anzuzeigen.
Nach dem Scannen des JavaScript-Codes scannt der JavaScript-Compiler alle Variablen und Funktionen, fügt sie dem globalen Geltungsbereich hinzu und weist der Variablen abc
undefined zu.
Dann beginnt die JavaScript-Engine Zeile für Zeile mit der Ausführung des Codes, und sobald sie die Variable abc
findet, wird ihr ein Wert zugewiesen, in diesem Fall 5
. Es weist der Variablen abc
im globalen Geltungsbereich 5
zu.
Die folgende Ausgabe stellt die zweite Konsolenanweisung dar, nachdem der Variablen der Wert 5
zugewiesen wurde.
So funktioniert das Konzept des Variablen- und Funktionshebens. Und das ist der eigentliche Grund, warum die globalen Variablen in JavaScript den Wert undefined
liefern.
Sahil is a full-stack developer who loves to build software. He likes to share his knowledge by writing technical articles and helping clients by working with them as freelance software engineer and technical writer on Upwork.
LinkedIn