Warum die globalen Variablen in JavaScript undefinierte Werte liefern

Sahil Bhosale 15 Februar 2024
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

globale Variable 1

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.

globale Variable 2

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 Bhosale avatar Sahil Bhosale avatar

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

Verwandter Artikel - JavaScript Variable