Heim > Web-Frontend > js-Tutorial > Wie verwendet man lokale Variablen und globale Variablen in JavaScript und was sind ihre Unterschiede?

Wie verwendet man lokale Variablen und globale Variablen in JavaScript und was sind ihre Unterschiede?

伊谢尔伦
Freigeben: 2017-07-18 09:50:10
Original
2344 Leute haben es durchsucht

Javascript hat zwei Arten von Variablen: lokale Variablen und globale Variablen.

Zuallererst können lokale Variablen nur innerhalb der Funktion aufgerufen werden, in der diese Variable deklariert ist. Globale Variablen sind Variablen, die im gesamten Code aufgerufen werden können. Natürlich ist es definitiv nicht klar, es wörtlich zu verstehen:
Wie wir alle wissen, müssen Variablen mit dem Schlüsselwort var deklariert werden. Allerdings können Variablen in JavaScript auch implizit verwendet werden, das heißt, sie können direkt ohne Deklaration verwendet werden. Beachten Sie außerdem, dass JavaScript immer implizit deklarierte Variablen als globale Variablen verwendet.
Zum Beispiel:

function myName() {
 i = 'yuanjianhang';
}
myName();
function sayName() {
 alert(i);
}
sayName();
Nach dem Login kopieren
Nach dem Login kopieren

Das Ausgabeergebnis ist: yuanjianhang

Dies zeigt, dass die Variable i eine globale Variable ist, wenn der obige Code wie folgt geändert wird:

function myName() {
 var i='yuanjianhang';
}
myName();
function sayName() {
 alert(i);
}
sayName();
Nach dem Login kopieren

Zu diesem Zeitpunkt hat der Browser keine Ausgabeergebnisse, da i in der Funktion myName definiert ist und daher nur eine lokale Variable von myName ist und nicht extern aufgerufen werden kann.


Schauen Sie sich nun den folgenden Code an:

function myName() {
 i = 'yuanjianhang';
}
myName();
function sayName() {
 alert(i);
}
sayName();
Nach dem Login kopieren
Nach dem Login kopieren

Nehmen wir nun einige Änderungen vor und entfernen Sie myName();. Der Code lautet wie folgt:

function myName() {
 i = 'yuanjianhang';
}
function sayName() {
 alert(i);
}
sayName();
Nach dem Login kopieren

Zu diesem Zeitpunkt reagiert der Browser nicht. Denn obwohl i eine globale Variable ist, wurde die Funktion myName() nicht aufgerufen. Sie entspricht also der Deklaration von i, aber der Zuweisung eines Werts an i, sodass keine Ausgabe erfolgt.
Ändern Sie das obige Beispiel wie folgt:

function myName() {
 
 i = 'yuanjianhang';
}
function sayName() {
 alert(i);
}
sayName();
myName();
Nach dem Login kopieren

In diesem Fall werden keine Ergebnisse ausgegeben. Der Javascript-Code wird in der Funktion sayName( ) von oben nach unten ausgeführt prüft den Wert der Variablen i, wenn sie aufgerufen wird. Zu diesem Zeitpunkt wurde die Funktion myName noch nicht ausgeführt, was bedeutet, dass i kein Wert zugewiesen wurde und daher keine Ergebnisse ausgegeben werden.

Der Standard für die Aufteilung des JavaScript-Bereichs ist Funktionsfunktionsblock, nicht wenn, während

<script>
function f1(){
   alert("before for scope:"+i);   
 //i未赋值(并不是没有声明!使用未声明变量或函数会导致致命错误从而中断脚本执行)
 //此时i值为undefined
   for(var i=0; i<3;i++){
       alert("in for scope:"+i);}
 //i的值是0,1,2 
   alert(“after for scope:”+1);
  //i的值是3,此时已经在for scope之外,但i的值仍然保留为3
    while(true){
       var j=1;
       break;}
    alert(j);
  //j的值是1,此时已经在while scope之外,但j的值仍然保留为1
    if(true){
      var k=1;
    }
    alert(k);
  //k的值为1,此时已经在if scope之外,但k的值仍保留为1
}
f1();
//此时在函数块外调用函数,再次输出存在于f1这个function scope里的i j k变量
alert(i);
//error!!!原因是这里的i未声明(不是未赋值,区别f1的第一行输出),脚本错误,程序结束!
alert(j);   
//未执行
alert(k);
//未执行
</script>
Nach dem Login kopieren

JavaScript wird die gesamte Skriptdatei vor der Ausführung vorkompilieren (Skript Analysieren Sie den Deklarationsteil der Datei, einschließlich des lokalen Variablenteils), um den Umfang der realen Variablen zu bestimmen. Beispiel unten:

<script>
   var x=1;
   function f2(){
    alert(x);
   //x的值为undefined!这个x并不是全局变量,因为在function scope已经又声明了一个重名的局部变量,所以全局变量的参数a被覆盖了。
    说明了JavaScript在执行前会进行预编译,函数体内的x就被指向局部变量,而不是全局变量。此时x只有声明,没有赋值,所以为undefined
    x=3;
    alert(x);
   //x值为3.但还是局部变量
    var x;
   //局部变量x在这里声明
    alert(x);
   //值为3
   }
   f2();
   alert(x);
   //x值为1,并不是在function scope内,x的值为全局变量的值。
</script>
Nach dem Login kopieren

Wenn eine globale Variable denselben Namen wie eine lokale Variable hat, überschreibt der Gültigkeitsbereich der lokalen Variablen den Gültigkeitsbereich der globalen Variablen, wenn Sie den Gültigkeitsbereich der lokalen Variablen verlassen Variable, es kehrt zum Gültigkeitsbereich der Variablen zurück, und wenn die globale Variable auf die lokale Variable trifft,

Wie verwende ich die globale Variable? Verwenden Sie window.globalVariableName.

<script>
   var a=1;
    function f3(){
       alert(window.a);
  //a位1,这里的a是全局变量
       var a=2;
        alert(a);
      }
    f3();
    alert(a);
</script>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie verwendet man lokale Variablen und globale Variablen in JavaScript und was sind ihre Unterschiede?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage