Heim > Artikel > Web-Frontend > Detaillierte Erläuterung des Vergleichs zwischen const, let und var in JavaScript ES6
Dieser Artikel stellt Ihnen hauptsächlich die relevanten Informationen zum Vergleich von const, let und var in JavaScript vor. Der Artikel stellt sie ausführlich anhand von Beispielcode vor, der für jeden einen gewissen Referenz- und Lernwert hat. Es ist nötig, Freunde, lasst uns dem Herausgeber folgen und einen Blick darauf werfen.
ECMAScript 6 Neu const- und let-Befehle wurden hinzugefügt, um Variablen zu deklarieren.
声明方式 | 变量提升 | 作用域 | 初始值 | 重复定义 |
const | 否 | 块级 | 需要 | 不允许 |
let | 否 | 块级 | 不需要 | 不允许 |
var | 是 | 函数级 | 不需要 | 允许 |
Variablenförderung: const und let müssen vor der Verwendung deklariert werden, Variablenförderung wird nicht unterstützt
console.log(c1, l1, v1); // 报错 // Uncaught ReferenceError: c1 is not defined const c1 = 'c1'; let l1 = 'l1'; var v1 = 'v1';
Bereich: const, let unterstützt den Bereich auf Blockebene und vermeidet effektiv die variable Abdeckung
const c21 = 'c21'; let l21 = 'l21'; var v21 = 'v21'; if (0.1 + 0.2 != 0.3) { const c21 = 'c22'; let l21 = 'l22'; var v21 = 'v22'; console.log(c21, l21, v21); // 输出 c22 l22 v22 } console.log(c21, l21, v21); // 输出 c21 l21 v22
Bereich auf Blockebene, auf den nicht direkt zugegriffen werden kann Die äußere Schichtschichtvariable
if (0.1 + 0.2 != 0.3) { const c22 = 'c22'; let l22 = 'l22'; var v22 = 'v22'; console.log(c22, l22, v22); // 输出 c22 l22 v22 } console.log(c22, l22, v22); // 报错 // Uncaught ReferenceError: c22 is not defined // 同样地, l22 is not defined
const definiert die Konstante , der kein Wert zugewiesen werden kann, aber das Attribut von Dieser Konstante kann ein Wert zugewiesen werden
const c231 = {}; const c232 = []; c231.name = 'seven'; c232.push(27); console.log(c231, c232); // 输出 {name: "seven"} [27] // 禁止给对象赋值,应该使用 Object.freeze const c233 = Object.freeze({}); const c234 = Object.freeze([]); c233.name = 'seven'; // 普通模式下不报错 // 严格模式下报错 // Uncaught TypeError: Cannot add property name, object is not extensible c234.push(27); // 普通模式下就会报错 // Uncaught TypeError: Cannot add property 0, object is not extensible console.log(c233, c234); // 输出 {} []
Globale Variablen werden nicht mehr als Attribute des Objekts der obersten Ebene (Fenster) festgelegt, wodurch eine Verschmutzung durch globale Variablen effektiv vermieden wird
const c24 = 'c24'; let l24 = 'l24'; console.log(c24, l24); // 输出 c24 l24 console.log(window.c24, window.l24); // 输出 undefined undefined
Die for-Schleife, die die Erwartungen erfüllt
for (var i = 0; i != 3; i++) { setTimeout(function() { console.log(i); },10); } // 依次打印 for (let i = 0; i != 3; i++) { setTimeout(function() { console.log(i); },10); } // 依次打印,为啥呢
Das können Sie anhand der let-Methode in sehen Die for-Schleife zum Deklarieren von Variablen entspricht den Erwartungen.
Jedes Mal in der for-Schleife deklariert let die Variable neu, und da sich die JavaScript-Engine den Wert der letzten Schleife merkt, wird die Initialisierung von i basierend auf der vorherigen Runde berechnet.
Sie können sehen, dass es in der for-Schleife mindestens zwei Gültigkeitsebenen gibt. Dies ist einfacher zu verstehen, wenn Sie sich das folgende Beispiel ansehen.
for (let i = 0; i != 3; i++) { let i = 'seven'; console.log(i); } console.log('eight'); // 依次打印 seven seven seven eight
Anfangswert: const Die deklarierte Variable muss einen Anfangswert haben und kann nicht wiederholt zugewiesen werden.
const c3 = 'c3'; let l3 = 'l3'; var v3 = 'v3'; console.log(c3, l3, v3); // 输出 c3 l3 v3 c3 = 2; // Uncaught TypeError: Assignment to constant variable l3 = 2; v3 = 2; console.log(c3, l3, v3); // 输出 c3 2 2 const c32; // 报错 // Uncaught SyntaxError: Missing initializer in const declaration
Doppelte Definition: const und let unterstützen keine wiederholte Definition
const und let reduzieren den Variablenbereich und vermeiden perfekt die Verschmutzung von const Feste Variablen (d. h. feste Variablentypen) können die Leistung von schwach typisiertem JavaScript erheblich verbessern. Es wird empfohlen, const und let zu verwenden, um Variablen in der Anwendung zu deklarieren.
Zusammenfassung
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des Vergleichs zwischen const, let und var in JavaScript ES6. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!