Heim  >  Artikel  >  Web-Frontend  >  Anmerkungen zur JavaScript-Studie (1) Lebenszyklus von Variablen

Anmerkungen zur JavaScript-Studie (1) Lebenszyklus von Variablen

黄舟
黄舟Original
2016-12-19 17:30:181378Durchsuche

Der Lebenszyklus einer Variablen wird auch als Bereich bezeichnet, der sich auf den gültigen Bereich einer Variablen im Programm bezieht. Je nach Umfang können Variablen in globale Variablen und lokale Variablen unterteilt werden.
1. Der Geltungsbereich globaler Variablen ist global, dh globale Variablen befinden sich überall im gesamten JavaScript-Programm.
2. Innerhalb einer Funktion deklarierte Variablen funktionieren nur innerhalb der Funktion. Diese Variablen sind lokale Variablen und ihr Gültigkeitsbereich ist lokal; die Parameter der Funktion sind ebenfalls lokal und funktionieren nur innerhalb der Funktion.
Ich sehe oft Artikel im Internet, in denen es heißt: „Es gibt zwei Möglichkeiten, globale Variablen in Javascript zu deklarieren: 1. Verwenden Sie nicht das Schlüsselwort var, wenn Sie Variablen deklarieren. 2. Wenn Sie Variablen außerhalb einer Funktion deklarieren, verwenden Sie die erste Methode.“ Selbst innerhalb der Funktion ist die Variable immer noch eine globale Variable. Wenn Sie die zweite Methode zum Deklarieren einer Variablen verwenden, ist die deklarierte Variable auch eine globale Variable wissen, ob es richtig oder falsch ist: siehe folgendes Beispiel:

1 & lt; script type = "text/javascript" & gt; 2 var v01 = "Ich bin eine globale Variable v01"; „I am me is Global variable v02“; // Die globale Variable, die keine VAR-Schlüsselwörter verwendet
4 Function Fun1 () {
5 Alert (v01); // Ausgabe „I am a global variable v01“
6 Alarm (6 Alarm (v02); // Ausgabe "Ich bin eine globale Variable v02"
7 v03 = "Ich bin ein globaler Variabler v03"; v02 "
15"
19}
20                                                                                                                                                                                   Schlüsselwort
3 v02 = „Das bin ich eine globale Variable v02" ; //Globale Variablen, die nicht mit dem Schlüsselwort var deklariert wurden
4 function fun1(){
5 warning(v01); //Ausgabe „Ich bin eine globale Variable v01"
6 Warnung (v02); / /output „Ich bin eine globale Variable v02“ }
11 12 Function Fun2 () {
13 Alert (v01); // Output „Ich bin eine globale Variable v01“
14 Warnung (v02); // Ausgabe „Ich bin eine globale Variable v02“ 15                                                                                                                                      using 19 }
20 //Beide Funktionen rufen
21 fun1();
22 auf fun2();
23
Haha, zu diesem Zeitpunkt folgte das Programm endlich unserer ursprünglichen Idee. Es wurde umgesetzt, aber zu diesem Zeitpunkt müssen wir es tun und zusammenfassen:
Wenn wir eine globale Variable innerhalb einer Funktion deklarieren, d Variable oder Es ist besser, außerhalb der Funktion zu deklarieren
Eine weitere erwähnenswerte Sache ist, dass der JavaScript-Variablenbereich nicht das Konzept eines Anweisungsblocks hat. Es ist nicht wie bei JAVA-Variablen, die innerhalb der for-Schleife deklariert werden und nicht außerhalb der Funktion verwendet werden können for-Schleife. Schauen Sie sich das Beispiel an:
1 function test(){
2 for(var i =0; i <20; i++){
3 document.write(i+"< BR>");
4                                                                         }
8 Warnung(j); // Ausgabe: „I deklarierte es innerhalb der for-Anweisung"
9 }
10 test();
Zusätzlich , es gibt noch eine andere Stelle, die leicht zu Fehlern führen kann:
1 var strTest = "Global variable";
5 }
6 test1(); Wir deklarieren zunächst eine globale Variable außerhalb der Funktion, melden sie dann innerhalb der Funktion und schließlich deklarieren wir eine gleiche Variable. Es gibt eine lokale Variable mit demselben Namen wie die globale Variable, dieses kleine Programm mit nur sechs Zeilen jedoch nicht Geben Sie „sehen, ob ein Fehler vorliegt“ aus, wie wir es uns vorgestellt haben, aber geben Sie „JavaScript“ undefiniert aus. Es gibt wirklich überall Fallen“
Ich habe lange online gegoogelt und diese Aussage gefunden:
Jeder weiß, dass JavaScript eine interpretierte Skriptsprache ist. Wenn JavaScript ausgeführt wird, sucht es zunächst nach allen Variablendeklarationen und erstellt die Variable mit einem undefinierten Anfangswert. Wenn eine Variable bei der Deklaration einen Wert hat, wird die Variable dennoch mit dem undefinierten Wert initialisiert und erst beim Ausführen der Deklarationszeile durch den deklarierten Wert ersetzt. Dies erklärt auch das obige Programm. Wenn wir vor der ersten Zeile des Programms einen Satz hinzufügen, ist das Ausgabeergebnis immer noch undefiniert. Ich denke, jeder hätte über den Grund nachdenken sollen Programmfehler. Dies bedeutet nicht, dass eine lokale Variable mit demselben Namen wie die globale Variable deklariert wird, aber solange die Variable vor der Variablendeklarationsanweisung aufgerufen wird, muss der Wert der Variablen undefiniert sein, aber wenn wir a aufrufen Eine Variable, die nicht deklariert wurde, dieses Mal wird der Fehler „Variable ist nicht definiert“ gemeldet, daher müssen wir auch den Unterschied zwischen den beiden verstehen, aber in jedem Fall besteht eine gute Codierungspraxis darin, den Aufruf lokaler und globaler Variablen zu vermeiden gleicher Name!
Betrachten Sie die letzte Situation: Achten Sie auf das folgende Programm:
1 var strGloblVar = "Ich bin eine globale Variable";
2 function Father(){
3 strFatherGloblVar = "Deklariert in übergeordnete Funktion Globale Variable";
4 var strFatherVar = "Ich bin eine lokale Variable in der übergeordneten Funktion und auch eine globale Variable in der untergeordneten Funktion";
5 function child(){
6 strChildGloblVar = " In der untergeordneten Funktion globale Variable in ";
7 Globale Variable strchildvar = Ich bin eine lokale Variable in der Unterfunktion";
8        Alert(strFatherVar);  //Ausgabe: „Ich bin eine lokale Variable in der übergeordneten Funktion und auch eine globale Variable in der untergeordneten Funktion“
9        Warnung(strChildVar);  //Ausgabe: „Ich bin eine lokale Variable in der untergeordneten Funktion „Variable“
10 Alert(“In Unterfunktion: „+strGloblVar); //Ausgabe: „Ich bin eine globale Variable“
11 Alert(strFatherGloblVar);
12 🎜>13 warning("Vater In der Funktion: "+strGloblVar); //Ausgabe: "Ich bin eine globale Variable"
14                  //alert(strChildVar);                           strChildVar ist undefiniert                                                                           :strChildGloblVar ist nicht definiert); // Ausgabe: „Extern für alle Funktionen: globale Variablen, die in der übergeordneten Funktion deklariert sind“
21 Alert(“Extern für alle Funktionen: „+strChildGloblVar); //Ausgabe: „Extern für alle Funktionen: globale Variablen, die in der untergeordneten Funktion deklariert sind „Personen, die JavaScript-Verschlüsse verwendet haben, werden das obige Programm leicht verstehen. Verschlüsse stehen nicht im Mittelpunkt dieses Artikels, aber dieses kleine Beispiel kann uns helfen zu beweisen, dass sich im Fall von Verschlüssen der Lebenszyklus von Variablen durch die Verwendung nicht ändert Es gibt eine große Änderung. Sie können das Konzept des Abschlusses einfach aufgeben und das Innere der Funktion „vater()“ als unabhängige Betriebsumgebung betrachten. Der in Zeile 14 gemeldete Fehler liegt daran, dass strChildVar eine in der Funktion child() definierte lokale Variable ist. Der in Zeile 15 gemeldete Fehler liegt daran, dass die Funktion child() nicht ausgeführt wurde, bevor strChildGloblVar aufgerufen wurde sagte vorhin. Wenn wir strFatherVar jedoch außerhalb der Funktion Father() ausgeben, tritt ein Fehler auf. Obwohl strFatherVar eine globale Variable von child() ist, ist es eine lokale Variable von Father().

Das Obige ist der Inhalt der JavaScript-Studiennotizen (1) Der Lebenszyklus von Variablen Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!

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