Heim > Web-Frontend > js-Tutorial > Hauptteil

Wie deklariere ich den Gültigkeitsbereich einer JS-Variablen? Detaillierte Erläuterung von Scope-Beispielen innerhalb von Funktionen

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

Der Umfang einer Variablen bezieht sich auf die Sichtbarkeit der Variablen, während der Lebenszyklus (Überlebenszeitraum) die Variable aus einer anderen Perspektive untersucht.

Der Umfang der Variablen in JS ist in globale Variablen und lokale Variablen unterteilt. Die innerhalb der Funktion definierten Variablen werden als lokale Variablen bezeichnet, und die außerhalb der Funktion definierten Variablen werden als globale Variablen bezeichnet. („Dinge außerhalb einer Funktion werden globale Variablen genannt“ sind relativ. Die hier diskutierte Prämisse ist, dass Variablen explizit mit var deklariert werden. Variablen, die innerhalb einer Funktion ohne var definiert werden, sind standardmäßig globale Variablen. Natürlich ist die Deklaration von Variablen ohne var verpönt. ).

var glob = 4;//函数外声明全局变量 
function fun() { 
    var height = 20; //函数内用var声明的是局部变量 
    weight = 50; //函数内不用var声明的是全局变量 
} 
fun(); 
alert(weight);
Nach dem Login kopieren

In JS gibt es keinen Bereich auf Blockebene, das heißt, er ist in geschweifte Klammern {} eingeschlossen. Gibt es in Java. Schreiben Sie den folgenden Code in die Hauptmethode

public static void main(String... args) { 
  for(int i=0;i<5;i++) { 
  } 
    { 
        int j=10; 
    } 
    int z = 20; 
    System.out.println(i); // i不可见,语法分析时报错,即编译不通过 
    System.out.println(j); // j不可见,语法分析时报错,即编译不通过 
    System.out.println(z); // z可见,输出20 
}
Nach dem Login kopieren

, aber wenn dies in JS

for(var i=0;i<5;i++) { 
} 
var obj = {name:"Lily"}; 
for(var attr in obj) { 
} 
{ 
  var j=10; 
} 
alert(i);//输出4,没有块级作用域 
alert(attr); //输出name,没有块级作用域 
alert(j);//输出10,没有块级作用域
Nach dem Login kopieren

auch ein Problem darstellt, vermeiden Sie die Verwendung einer for-Schleife im globalen Bereich und deklarieren Sie Variablen am Gleichzeitig führt dies andernfalls zu einer Verschmutzung des globalen Namensbereichs.

Natürlich hat JS1.7 das Schlüsselwort let zum Deklarieren von Variablen vorgeschlagen, das nur für den Bereich der for-Anweisung gilt.

for(let i=0;i<5;i++) { 
   //todo 
} 
alert(i);//运行时报错,提示i未定义
Nach dem Login kopieren

Beispiel für den Umfang von Variablen in einer JS-Funktion:

<html>
<head>
</head>
<body>
<script type="text/javascript">
var a = 5;
var c = 3;
function t(){
 var a = 6;
 var b = 10;
 document.write(a+&#39;-----&#39;+b);
 document.write(c);
}
t();
</script>
</body>
</html>
Nach dem Login kopieren

Anders als PHP: Wenn Sie eine Variable in einer JS-Funktion aufrufen möchten, sucht diese zunächst innerhalb der Funktion. Im Beispiel ist a gleich 6, aber c kann nicht im Funktionskörper gefunden werden. Wenn es gefunden wird, wird es aufgerufen wird einen Fehler melden.

Das obige ist der detaillierte Inhalt vonWie deklariere ich den Gültigkeitsbereich einer JS-Variablen? Detaillierte Erläuterung von Scope-Beispielen innerhalb von Funktionen. 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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!