Heim > Web-Frontend > js-Tutorial > Hauptteil

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

青灯夜游
Freigeben: 2020-11-13 10:54:49
Original
16342 Leute haben es durchsucht

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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;
Nach dem Login kopieren

Dieses Codesegment hat die gleiche Logik wie das folgende Codesegment:

var a;
console.log(a);//undefined
a = 1;
Nach dem Login kopieren

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

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

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;
Nach dem Login kopieren
function foo(){
    let a = 1;
    let a = 2;//Uncaught SyntaxError: Identifier 'a' has already been declared
}
Nach dem Login kopieren

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

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

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)
};
Nach dem Login kopieren

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.
Nach dem Login kopieren
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
Nach dem Login kopieren
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!

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