Das Beispiel in diesem Artikel beschreibt die Methode der Javascript-Variablendeklaration. Teilen Sie es als Referenz mit allen. Die spezifische Analyse lautet wie folgt:
Eine Variable sollte deklariert werden, bevor sie in js verwendet wird. Variablen werden mit dem Schlüsselwort var deklariert.
Wenn für eine Variable in der var-Deklarationsanweisung kein Anfangswert angegeben ist, ist der Variablenwert undefiniert.
Es ist nicht erforderlich, den Variablentyp anzugeben, wenn die Variable deklariert wird. JS-Variablen können einen beliebigen Datentyp haben.
Es ist legal und harmlos, Variablen wiederholt mit der var-Anweisung zu deklarieren. Wenn die wiederholte Deklaration über einen Initialisierer verfügt, unterscheidet sie sich nicht von einer einfachen Zuweisungsanweisung.
Wenn Sie versuchen, eine nicht deklarierte Variable zu lesen, meldet js einen Fehler. Im strengen Modus von ECMAScript5 wird auch ein Fehler gemeldet, wenn Sie einer nicht deklarierten Variablen einen Wert zuweisen. Wenn Sie jedoch einer nicht deklarierten Variablen einen Wert zuweisen, erstellt js tatsächlich eine Eigenschaft mit demselben Namen für die globales Objekt, und es scheint, als ob es wie eine ordnungsgemäß deklarierte globale Variable funktioniert. Das bedeutet, dass Sie damit durchkommen, keine globalen Variablen zu deklarieren, aber das ist eine schlechte Angewohnheit, die viele Fehler verursachen kann, und es ist besser, immer var zum Deklarieren von Variablen zu verwenden.
Im Funktionskörper überschreiben lokale Variablen mit demselben Namen globale Variablen.
Obwohl Sie Code im globalen Bereich schreiben können, ohne die var-Anweisung zu schreiben, müssen Sie beim Deklarieren lokaler Variablen die var-Anweisung verwenden. Bitte beachten Sie den folgenden Code:
scope = "global"; function foo(){ scope="local" //fk!我们刚刚修改了全局变量!!! }
In Programmiersprachen wie C hat jeder Codeabschnitt in geschweiften Klammern seinen eigenen Bereich, und Variablen sind außerhalb des Codeabschnitts, in dem sie deklariert sind, nicht sichtbar Bereich auf Blockebene in js, aber stattdessen wird der Funktionsbereich verwendet: Variablen werden im Funktionskörper definiert, in dem sie deklariert sind, und in jedem Funktionskörper, in dem dieser Funktionskörper verschachtelt ist (ob innere Verschachtelung oder äußere Verschachtelung?)
Der Funktionsumfang von js bedeutet, dass alle innerhalb der Funktion deklarierten Variablen immer im Funktionskörper sichtbar sind, was bedeutet, dass die Variablen sogar verwendet werden können, bevor sie deklariert werden. Diese Funktion von js wird informell als Deklarationshub bezeichnet, d. h. alle in einer js-Funktion deklarierten (aber nicht zugewiesenen) Variablen werden an den Anfang des Funktionskörpers „vorgerückt“.
var scope = "global"; function f(){ console.log(scope); //输出"undefined"而不是"global" var scope = "local"; //变量在这里赋初始值,但变量在函数体内任何地方均是有定义的 console.log(scope); //输出"local"
Der obige Code entspricht:
function f(){ var scope; console.log(scope); scope = "local"; console.log(scope); }
Wenn eine globale js-Variable deklariert wird, definiert sie tatsächlich eine Eigenschaft des globalen Objekts.
Wenn Sie eine Variable mit var deklarieren, ist das erstellte Attribut nicht konfigurierbar, das heißt, es kann nicht mit dem Löschoperator gelöscht werden. Wenn Sie jedoch keinen strikten Modus verwenden und einer nicht deklarierten Variablen einen Wert zuweisen, erstellt js automatisch ein globales Variable. Auf diese Weise erstellte Variablen sind normale konfigurierbare Eigenschaften des globalen Objekts und können gelöscht werden:
var x = 1; y = 2; this.z = 3; //同上 delete x; //返回false,无法删除变量 delete y; //返回true,变量被删除 delete this.z //同上
Ich hoffe, dass dieser Artikel für das JavaScript-Programmierdesign aller hilfreich sein wird.