Unterschied: Im globalen Bereich sind Variablen im gesamten Seitenskript sichtbar und können frei aufgerufen werden. Im lokalen Bereich können Variablen nur innerhalb der deklarierten Funktion sichtbar sein und dürfen außerhalb der Funktion nicht mehr aufgerufen werden. Nach Ausführung der Funktion wird der lokale Bereich zerstört.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, JavaScript-Version 1.8.5, Dell G3-Computer.
Variablenbereich, der als „Variablenbereich (Bereich)“ bezeichnet werden kann, bezieht sich auf den effektiven Bereich, auf den eine Variable im Programm zugreifen kann, auch bekannt als die Sichtbarkeit der Variablen.
1. Was ist Scope? Im Allgemeinen ist der in einem Programmcode verwendete Name nicht immer gültig und verfügbar, und die Verfügbarkeit dieses Namens ist begrenzt den Umfang dieses Namens. JS-Bereich: Dies ist der Bereich des Codenamens (Variable)
Der Zweck des Bereichs: die Zuverlässigkeit des Programms zu verbessern und, was noch wichtiger ist, Namenskonflikte zu reduzieren
2 Klassifizierung des JS-Bereichs ( Vor ES6)
JS-Bereich kann in zwei Kategorien unterteilt werden: globaler Bereich, lokaler Bereich (Funktionsbereich)
1) Globaler Bereich:JS direkt im Skript-Tag geschrieben Der Code befindet sich im globalen Bereich; oder in einer separaten JS-Datei.
Der globale Bereich wird beim Öffnen der Seite erstellt und beim Schließen der Seite zerstört.
Im globalen Bereich gibt es ein globales Objektfenster (das ein vom Browser erstelltes Browserfenster darstellt), das direkt verwendet werden kann.
Im globalen Bereich
werden alle erstellten Variablen als Eigenschaften des Fensterobjekts gespeichert.Alle erstellten Funktionen werden als Methoden des Fensterobjekts gespeichert.
2) Lokaler Geltungsbereich (Funktionsbereich):
Innerhalb der Funktion befindet sich der lokale Geltungsbereich. Der Name dieses Codes funktioniert nur innerhalb der Funktion. Der Funktionsbereich wird erstellt, wenn die Funktion aufgerufen wird. Nachdem die Funktion ausgeführt wurde, wird der Funktionsumfang zerstört.
Bei jedem Aufruf einer Funktion wird ein neuer Funktionsumfang erstellt, der unabhängig voneinander ist.
Beispielanalyse:In diesem Beispiel gibt es eine Num-Variable im lokalen Bereich in der un-Funktion und es gibt auch eine Num-Variable im globalen Bereich des Skript-Tags. (Eine befindet sich im globalen Bereich und die andere im lokalen Bereich. Obwohl die Variablennamen der beiden Variablen in Konflikt stehen, hat dies keine Auswirkung.)
Es spielt also keine Rolle, ob die Variablennamen identisch sind Dadurch werden Namenskonflikte effektiv reduziert.
<script> var num = 10; function nu(){ var num = 20; console.log(num); } nu(); console.log(num); </script>
2. Gültigkeitsbereich von Variablen
JavaScript-Variablen können in globale Variablen und lokale Variablen unterteilt werden:
Globale Variablen sind im gesamten Seitenskript sichtbar und auf ihren Gültigkeitsbereich kann frei zugegriffen werden.
Lokale Variablen: Variablen können nur innerhalb der deklarierten Funktion sichtbar sein und dürfen außerhalb der Funktion nicht aufgerufen werden. Ihr Gültigkeitsbereich ist der lokale Gültigkeitsbereich.
Beispiel 1
var a = 1; //声明并初始化全局变量 function f(){ //声明函数 document.write(a); //显示undefined var a = 2; //声明并初始化局部变量 document.write(a); //显示 2 } f(); //调用函数
Da innerhalb der Funktion eine lokale Variable a mit demselben Namen deklariert wird, verwendet JavaScript während der Zeit vor der Kompilierung diese Variable, um den Einfluss der globalen Variablen innerhalb der Funktion zu überschreiben. Zu Beginn der Ausführung wird der lokalen Variablen a kein Wert zugewiesen, sodass der Wert der in der ersten Codezeile der Funktion gelesenen lokalen Variablen a undefiniert ist. Wenn die 2. Codezeile der Funktion ausgeführt wird, wird der lokalen Variablen der Wert 2 zugewiesen, sodass sie in der 3. Zeile als 2 angezeigt wird.
Beispiel 2
Das folgende Beispiel zeigt die Konsequenzen, wenn lokale Variablen nicht explizit deklariert werden.
var jQuery = 1; (function () { jQuery = window.jQuery = window.$ = function(){}; })() document.write(jQuery); //显示函数代码:function(){}
Daher ist die Verwendung globaler Variablen innerhalb eines Funktionskörpers ein gefährliches Verhalten. Um solche Probleme zu vermeiden, sollten Sie sich angewöhnen, lokale Variablen mithilfe der var-Anweisung im Funktionsrumpf explizit zu deklarieren.
【Empfohlenes Lernen:
Javascript-Tutorial für Fortgeschrittene】
Das obige ist der detaillierte Inhalt vonWas sind die Unterschiede zwischen den beiden Arten von Variablenbereichen in JavaScript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!