Heim  >  Artikel  >  Web-Frontend  >  Was ist der Unterschied zwischen var, let und const in JavaScript?

Was ist der Unterschied zwischen var, let und const in JavaScript?

青灯夜游
青灯夜游Original
2020-11-13 10:54:4916215Durchsuche

Unterschiede: 1. Mit var deklarierte Variablen gehören zum Funktionsbereich, während mit let und const deklarierte Variablen zum Gültigkeitsbereich auf Blockebene gehören. 2. Variablenförderung existiert in var, jedoch nicht in let und const wiederholt deklariert, aber im selben Bereich auf Blockebene können let-Variablen nicht erneut deklariert und const-Variablen nicht geändert werden.

Was ist der Unterschied zwischen var, let und const in JavaScript?

Empfohlenes Tutorial: „JavaScript-Video-Tutorial

Vor dem Aufkommen von ES6 (ES2015) bestand die einzige Möglichkeit, Variablen in JavaScript über das Schlüsselwort var zu deklarieren, und Funktionen über das Schlüsselwort function. Nach ES6 umfassen die Deklarationsmethoden var, let, const, function und class. In diesem Artikel werden hauptsächlich die Unterschiede zwischen var, let und const erläutert.

Var verstehen

Wenn Sie eine Variable mit dem Schlüsselwort var deklarieren, gehört die Variable zum aktuellen Funktionsbereich. Wenn es sich bei der Deklaration um eine Deklaration der obersten Ebene handelt, die außerhalb einer Funktion auftritt, gehört die Variable zum globalen Umfang. Beispiel:

var a = 1; //此处声明的变量a为全局变量
function foo(){
   var a = 2;//此处声明的变量a为函数foo的局部变量
   console.log(a);//2
}
foo();
console.log(a);//1

Wenn Sie var beim Deklarieren einer Variablen weglassen, wird die Variable zu einer globalen Variablen. Wenn die Variable im globalen Bereich vorhanden ist, wird ihr Wert aktualisiert. Zum Beispiel:

var a = 1; //此处声明的变量a为全局变量
function foo(){
   a = 2;//此处的变量a也是全局变量
   console.log(a);//2
}
foo();
console.log(a);//2

Hinweis: Mit var deklarierte Variablen unterliegen dem Hochziehen.

Verstehen Sie „Heben“

Heben bedeutet, dass unabhängig davon, wo var in einem Bereich erscheint, diese Deklaration zum gesamten aktuellen Bereich gehört und überall darauf zugegriffen werden kann. Beachten Sie, dass nur Variablendeklarationen gefördert werden, keine Zuweisungen zu Variablen. Wie im folgenden Beispiel gezeigt:

console.log(a);//undefined
var a = 1;

Dieses Codesegment hat die gleiche Logik wie das folgende Codesegment:

var a;
console.log(a);//undefined
a = 1;

Und wenn Sie mit nicht deklarierten Variablen arbeiten, wird ein Fehler gemeldet

console.log(b);//假设b未声明过,Uncaught ReferenceError: b is not defined

Verstehen Sie die von let deklarierten Variablen

let hat die folgenden Eigenschaften:

  • Die von let deklarierten Variablen haben die Eigenschaften des Blockbereichs.

  • Im selben Bereich auf Blockebene können Variablen nicht wiederholt deklariert werden.

  • Es gibt keine Variablenheraufstufung für durch let deklarierte Variablen. Mit anderen Worten: Es gibt eine temporäre Totzone (TDZ) in der let-Deklaration.

Wie in den folgenden Beispielen gezeigt

let a = 1;
console.log(a);//1
console.log(b);//Uncaught ReferenceError: b is not defined
let b = 2;
function foo(){
    let a = 1;
    let a = 2;//Uncaught SyntaxError: Identifier 'a' has already been declared
}

Das Folgende ist ein klassisches Beispiel für var und let:

for (var i = 0; i < 10; i++) {
    setTimeout(function(){
        console.log(i);
    },100)
};

Nachdem der Code ausgeführt wurde, werden 10 10s auf der Konsole gedruckt, wenn er wie folgt geändert wird:

for (let i = 0; i < 10; i++) {
    setTimeout(function(){
        console.log(i);
    },100)
};

After Wenn der Code ausgeführt wird, werden 0-9 auf der Konsole gedruckt.

Verstehen Sie die const-Deklarationsmethode. Zusätzlich zu den oben genannten Eigenschaften von let gibt es auch eine Eigenschaft, nämlich die durch const definierten Variablen Sobald es definiert ist, kann es nicht mehr geändert werden, das heißt, die const-Deklaration ist eine Konstante.

Zum Beispiel:

const a = 1;
console.log(a);//1
a = 2;
console.log(a);//Uncaught TypeError: Assignment to constant variable.
Dies bedeutet jedoch nicht, dass der interne Inhalt einer const-deklarierten Variablen unveränderlich ist, wie zum Beispiel:

const obj = {a:1,b:2};
console.log(obj.a);//1
obj.a = 3;
console.log(obj.a);//3
Um genau zu sein, erstellt eine Const-Deklaration einen schreibgeschützten Verweis auf einen Wert. Das bedeutet aber nicht, dass der darin enthaltene Wert unveränderlich ist, sondern nur, dass der Variablenbezeichner nicht neu zugewiesen werden kann.

Zusammenfassung der Unterschiede

Von var deklarierte Variablen gehören zum Funktionsbereich, während von let und const deklarierte Variablen zum Blockebenenbereich gehören;
  • var weist das Phänomen der Variablenförderung auf, let und const jedoch nicht haben ein solches Phänomen;
  • var-Variablen können wiederholt deklariert werden, aber im selben Bereich auf Blockebene können let-Variablen nicht erneut deklariert werden und const-Variablen können nicht geändert werden.
  • Weitere Kenntnisse zum Thema Programmierung finden Sie unter:
  • Programmierunterricht
! !

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen var, let und const in JavaScript?. 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