Heim >Web-Frontend >js-Tutorial >Die falsche Verwendung von var in Javascript führt zu undefinierten_Javascript-Tipps

Die falsche Verwendung von var in Javascript führt zu undefinierten_Javascript-Tipps

WBOY
WBOYOriginal
2016-05-16 15:07:131277Durchsuche

In JavaScript werden Variablen entsprechend ihrem unterschiedlichen Geltungsbereich in lokale Variablen und globale Variablen unterteilt. Direkt definierte Variablen sind globale Variablen, und in Funktionen definierte globale Variablen sind lokale Variablen und nur lokale Variablen Gültig innerhalb von Funktionen.
Wenn globale Variablen und lokale Variablen denselben Variablennamen verwenden, überschreibt die lokale Variable die globale Variable.
Beispielcode:

<!DOCTYPE html> 
<html> 
  <head> 
    <meta charset="utf-8"> 
    <title>js中全局变量与局部变量</title> 
  </head> 
  <body> 
    <script type="text/javascript"> 
      var a = "全局变量"; 
      function test1() 
      { 
        var a = "局部变量"; 
         
        alert(a); 
      } 
       
      function test2() 
      { 
        alert(a); 
         
        var a = "局部变量"; 
         
        alert(a); 
      } 
       
      function test3() 
      { 
        alert(a); 
         
        a = "局部变量"; 
         
        alert(a); 
      } 
    </script> 
     
    <input type="button" value="test1" onclick="test1()"/> 
    <input type="button" value="test2" onclick="test2()"/> 
    <input type="button" value="test3" onclick="test3()"/> 
 
  </body> 
</html> 

Das Ergebnis der Operation ist wie folgt:
Klicken Sie auf test1, um lokale Variablen anzuzeigen.
Klicken Sie auf „test2“, dann wird „undefiniert“ und dann „lokale Variablen“ angezeigt

Klicken Sie auf test3, um die globalen Variablen anzuzeigen, und dann auf die lokalen Variablen

Das ist der Unterschied zwischen der Verwendung von var und der Nichtverwendung:
Wenn Sie var verwenden, dann erzwingt das Programm die Definition einer neuen Variablen.
Wenn var nicht verwendet wird, Das System sucht zunächst, ob die Variable im aktuellen Kontext existiert, und definiert nur dann eine neue Variable neu, wenn sie nicht existiert.

In Test3 sind alle verwendeten Variablen globale Variablen. Beim ersten Mal wird die globale Variable direkt ausgegeben, beim zweiten Mal wird der globalen Variablen direkt ein Wert zugewiesen.
Sowohl in test1 als auch in test2 führt die Verwendung von var zum Definieren einer neuen Variablen mit demselben Namen in der Funktion dazu, dass die Variablen in der Funktion die globale Variable überschreiben. Also in Test2: Die erste Ausgabe a ist die lokale Variable a, die überschrieben wurde, aber es wird kein Anfangswert angegeben, sodass das Ergebnis undefiniert erscheint. Die Verwendung von Variablen auf diese Weise ist eigentlich falsch und sollte vermieden werden.

Stellungnahme:
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