Heim  >  Artikel  >  Web-Frontend  >  Unterschiedliches Verständnis und Analyse der JavaScript-Variablendeklaration und Definition der Variablenvariable

Unterschiedliches Verständnis und Analyse der JavaScript-Variablendeklaration und Definition der Variablenvariable

伊谢尔伦
伊谢尔伦Original
2017-07-18 10:57:261482Durchsuche

Schauen wir uns ein einfaches Beispiel an, um das Problem zu veranschaulichen

if (!("a" in window)) {
    var a = 1;
}
alert(a);

Zunächst sind alle globalen Variablen Attribute von window. Die Anweisung var a = 1; window. a = 1;

Sie können die folgende Methode verwenden, um zu erkennen, ob globale Variablen deklariert sind

"Variablenname" im Fenster

Zweitens alle Variablen Deklarationen sind Oben im Bereichsbereich sehen Sie sich ein ähnliches Beispiel an:

Kopieren Sie den Code Der Code sieht folgendermaßen aus:

alert("a" in window);
var a;

At Auch wenn die Deklaration an diesem Punkt in der Warnung ist, ist das Warnungs-Popup immer noch wahr. Dies liegt daran, dass die JavaScript-Engine zunächst alle Variablendeklarationen scannt und diese dann nach oben verschiebt. Der endgültige Codeeffekt ist wie folgt :

var a;
alert("a" in window);

Drittens müssen Sie verstehen, dass die Bedeutung dieser Frage darin besteht, dass die Variablendeklaration fortgeschritten ist, die Variablenzuweisung jedoch nicht, da diese Codezeile die Variablendeklaration und Variablenzuweisung enthält.

Sie können die Anweisung in den folgenden Code aufteilen:

var a;    //声明
a = 1;    //初始化赋值

Zusammenfassend lässt sich sagen, dass die JavaScript-Engine sie automatisch aufteilt, wenn Variablendeklaration und -zuweisung zusammen verwendet werden Die beiden Schritte bestehen darin, Variablen im Voraus zu deklarieren, den Zuweisungsschritt jedoch nicht voranzutreiben, da dies die Ausführung des Codes beeinträchtigen und zu unvorhersehbaren Ergebnissen führen kann.

Der Code in der Frage entspricht:

var a;
if (!("a" in window)) {
    a = 1;
}
alert(a);

Laut der Analyse der obigen Beispielfrage gilt beim Deklarieren einer Variablen, wenn es sich um eine deklarierte lokale Variable handelt, var muss davor hinzugefügt werden. Globale Variablen müssen nicht hinzugefügt werden (es ist am besten, die Anzahl globaler Variablen zu begrenzen und lokale Variablen so weit wie möglich zu verwenden)

Im Folgenden werden mehrere beschrieben Merkmale der Verwendung von var

Die Verwendung einer var-Anweisung zur mehrfachen Deklaration einer Variablen ist nicht nur zulässig, sondern verursacht auch keine Fehler.
Wenn eine wiederverwendete Anweisung einen Anfangswert hat, spielt sie nur die Rolle einer Zuweisungsanweisung.
Wenn eine wiederverwendete Deklaration keinen Anfangswert hat, hat dies keine Auswirkungen auf die ursprünglich vorhandenen Variablen.
Variablen ohne var-Deklaration existieren als globale Variablen; Variablen mit var-Deklaration sind lokale Variablen, insbesondere innerhalb von Funktionen. Darüber hinaus ist die Deklaration mit var nach dem Testen schneller als ohne var. Richten Sie so viele lokale Variablen wie möglich in der Funktion ein, damit sie sicher und schnell ist und die Variablenoperation sinnvoller ist. Logikfehler werden nicht durch zufällige Manipulation globaler Variablen in der Funktion verursacht.

Beim Deklarieren eines Objekts ist es am besten, die Self-Face-Methode des Objekts zu verwenden, die viel schneller ist als die neue Methode.

Der Variablenname wird von Ihnen selbst gewählt. Um Semantik und Spezifikationen zu gewährleisten, kann der Variablenname etwas länger sein, aber bitte beachten Sie, dass die Länge des Variablennamens auch Auswirkungen auf die Ausführung hat Geschwindigkeit des Codes. Deklarationen mit langen Variablennamen werden nicht so schnell ausgeführt wie kurze.

Das Thema ist wie folgt: Was sind die Ergebnisse der beiden Warnungen?

<script
type="text/javascript">
    var a = 1;
    var a;
    alert(typeof a);
(function () {
        b = &#39;-----&#39;;
        var b;        
    })();
    alert( typeof b);
</script>

Führen Sie den Code in Chrome aus. Das korrekte Ergebnis des Codes ist 1.Nummer 2.undefiniert. Was hier untersucht wird, ist das Konzept der JavaScript-Variablendeklaration im Voraus.

Wir betrachten ein weiteres Beispiel wie das folgende:

test();
function test(){    
alert("Hello World!");
}

Das Programm meldet keinen Fehler, aber das laufende Ergebnis lautet: Hallo Welt!. Prinzip: Bevor der Computer mit der Ausführung der Anweisung beginnt, sucht er zunächst nach allen Funktionsdefinitionen und speichert dann die zugehörigen Funktionen.
Frage 1:
var a = 1;
var a;
Die Deklaration der Variablen a in Zeile 2 entspricht der Deklaration von a oben, und dann besteht der erste Satz darin, a neu zu deklarieren und dann Der zugewiesene Wert ist 1. Typ von a ist also Zahl
Frage 2:
b = '-----';
var b; , prüft es, ob im Kontext eine Deklaration der Variablen b vorhanden ist. Wenn ja, wird der Wert direkt „-----“ zugewiesen. Aber Alert(typeof b); liegt außerhalb der Funktion und gibt die globale Variable b aus, die alle undefiniert sind.
Bitte beachten Sie: Die Zuweisung zu Variablen erfolgt nicht im Voraus.

Das obige ist der detaillierte Inhalt vonUnterschiedliches Verständnis und Analyse der JavaScript-Variablendeklaration und Definition der Variablenvariable. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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