Es gab eine Zeit, in der ich die praktische Verwendung von let, const und var in JavaScript verwendet und verstanden habe, aber es in Worten zu erklären war eine Herausforderung. Wenn Sie sich in einer ähnlichen Situation befinden, sollten Sie sich vor allem auf die Unterschiede in Umfang, Hebung, Neuinitialisierung und Neuzuweisung konzentrieren.
Scoping:
function varExample() { if (true) { var x = 10; // x is function-scoped } console.log(x); // Outputs: 10 } varExample(); if (true) { var y = 20; // y is globally scoped because it's outside a function } console.log(y); // Outputs: 20
function letExample() { if (true) { let x = 10; // x is block-scoped console.log(x); // Outputs: 10 } console.log(x); // ReferenceError: x is not defined } letExample(); if (true) { let y = 20; // y is block-scoped console.log(y); // Outputs: 20 } console.log(y); // ReferenceError: y is not defined
function constExample() { if (true) { const x = 10; // x is block-scoped console.log(x); // Outputs: 10 } console.log(x); // ReferenceError: x is not defined } constExample(); if (true) { const y = 20; // y is block-scoped console.log(y); // Outputs: 20 } console.log(y); // ReferenceError: y is not defined
Heben
Heben ist so, als würde man einen Arbeitsplatz einrichten, bevor man mit einer Aufgabe beginnt. Stellen Sie sich vor, Sie stehen in der Küche und bereiten die Zubereitung einer Mahlzeit vor. Bevor Sie mit dem Kochen beginnen, legen Sie alle Zutaten und Werkzeuge auf die Arbeitsfläche, damit sie griffbereit sind.
Wenn Sie beim Programmieren Code schreiben, geht die JavaScript-Engine Ihren Code durch, bevor sie ihn tatsächlich ausführt, und richtet alle Variablen und Funktionen an der Spitze ihres Gültigkeitsbereichs ein. Das bedeutet, dass Sie Funktionen und Variablen verwenden können, bevor Sie sie in Ihrem Code deklariert haben.
Alle drei (var, let und const) sind tatsächlich angehoben. Der Unterschied liegt jedoch darin, wie sie während des Hebevorgangs initialisiert werden.
Var wird angehoben und mit undefiniert initialisiert.
console.log(myVar); // Outputs: undefined var myVar = 10;
console.log(myLet); // ReferenceError: Cannot access 'myLet' before initialization let myLet = 10;
console.log(myConst); // ReferenceError: Cannot access 'myConst' before initialization const myConst = 20;
Neuzuweisung und Neuinitialisierung:
var x = 10; x = 20; // Reassignment console.log(x); // Outputs: 20 var x = 30; // Reinitialization console.log(x); // Outputs: 30
let y = 10; y = 20; // Reassignment console.log(y); // Outputs: 20 let y = 30; // SyntaxError: Identifier 'y' has already been declared
const z = 10; z = 20; // TypeError: Assignment to constant variable. const z = 30; // SyntaxError: Identifier 'z' has already been declared
const obj = { a: 1 }; obj.a = 2; // Allowed, modifies the property console.log(obj.a); // Outputs: 2 obj = { a: 3 }; // TypeError: Assignment to constant variable.
const arr = [1, 2, 3]; arr[0] = 4; // Allowed, modifies the element console.log(arr); // Outputs: [4, 2, 3] arr = [5, 6, 7]; // TypeError: Assignment to constant variable.
Das obige ist der detaillierte Inhalt vonEin Überblick über Let, Const und Var: Erklärung der wichtigsten Unterschiede. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!