Der Unterschied zwischen var, let und const besteht darin, dass die Variable von var vor der Ausführung des Codes deklariert wird und der Arbeitsbereich im Kontext der aktuellen Ausführung liegt. Let ermöglicht die Erstellung einer Variablen, wirkt jedoch nur in ihrem Block . Was ist die Ähnlichkeit zwischen const und let? Der einzige Unterschied besteht darin, dass durch const definierte Variablen nicht geändert werden können.
In diesem Artikel werden hauptsächlich die Unterschiede zwischen var, let und const anhand der Methode zum Erstellen von Variablen in JavaScript (ES6) vorgestellt. , was einen gewissen Referenzeffekt hat. Ich hoffe, es hilft allen.
[Empfohlene Kurse: JavaScript-Tutorial]
var VS let
Der Hauptunterschied zwischen var und let ist nicht die Verwendung des Funktionsbereichs, sondern die Verwendung des Blockbereichs. Dies bedeutet, dass eine mit dem Schlüsselwort let erstellte Variable innerhalb des „Blocks“, in dem sie erstellt wurde, sowie in allen verschachtelten Blöcken verfügbar ist.
Beispiel
function discountPrices (prices, discount) { var a = [] for (var i = 0; i < prices.length; i++) { var discountedPrice = prices[i] * (1 - discount) var finalPrice = Math.round(discountedPrice * 100) / 100 a.push(finalPrice) } console.log(i) // 3 console.log(discountedPrice) // 150 console.log(finalPrice) // 150 return a }
Im obigen Beispiel können i, discountedPrice und finalPrice außerhalb der for-Schleife verwendet werden, weil sie mit var und var deklariert werden ist Funktionsumfang. Was passiert, wenn wir var durch let ersetzen?
function discountPrices (prices, discount) { let a = [] for (let i = 0; i < prices.length; i++) { let discountedPrice = prices[i] * (1 - discount) let finalPrice = Math.round(discountedPrice * 100) / 100 a.push(finalPrice) } console.log(i) // 3 console.log(discountedPrice) // 150 console.log(finalPrice) // 150 return a } discountPrices([100, 200, 300], .5) // 这儿会报错i未定义
Dieser Fall zeigt uns, dass mit let deklarierte Variablen einen Blockbereich und keinen Funktionsbereich haben. Daher wird beim Zugriff auf i (oder discountedPrice oder finalPrice) außerhalb des „Blocks“ ein Fehler gemeldet
Der nächste Unterschied hängt mit der variablen Promotion zusammen. Die Definition von Heben lautet: „Der JavaScript-Interpreter weist Variablendeklarationen während der sogenannten ‚Erstellungsphase‘ einem Standardwert von undefiniert zu.
Beispiel:
function discountPrices (prices, discount) { console.log(discounted) // undefined var a = [] for (var i = 0; i < prices.length; i++) { var discountedPrice = prices[i] * (1 - discount) var finalPrice = Math.round(discountedPrice * 100) / 100 a.push(finalPrice) } console.log(i) // 3 console.log(discountedPrice) // 150 console.log(finalPrice) // 150 return a}
If Sie wollen Bevor Sie Variablen deklarieren, verwenden Sie let, um Variablen anstelle von undefinierten Variablen zu deklarieren (z. B. die mit var deklarierten Variablen). Das Programm meldet einen Fehler
function discountPrices (prices, discount) { console.log(discounted) // 错误 let a = [] for (let i = 0; i < prices.length; i++) { let discountedPrice = prices[i] * (1 - discount) let finalPrice = Math.round(discountedPrice * 100) / 100 a.push(finalPrice) } console.log(i) // 3 console.log(discountedPrice) // 150 console.log(finalPrice) // 150 return a}
Die Schlussfolgerung lautet
var: Die Variablendeklaration wird verarbeitet, bevor der Code ausgeführt wird, und ihr Gültigkeitsbereich liegt im Kontext seiner aktuellen Ausführung.
let: Mit der let-Anweisung können wir eine Variable erstellen, deren Gültigkeitsbereich auf den Block in beschränkt ist was es verwendet wird.
let VS const
Da Sie nun den Unterschied zwischen var und let verstehen, stellt sich heraus, dass const fast identisch mit let ist Der einzige Unterschied besteht darin, dass einer Variablen, die mit const deklariert wurde, kein neuer Wert zugewiesen werden kann Wenn Sie also möchten, dass eine Variable unveränderlich ist, bedeutet dies nicht, dass sie unveränderlich ist. Zum Beispiel:let name = 'Tyler' const handle = 'tylermcginnis' name = 'Tyler McGinnis' //正确 handle = '@tylermcginnis' //错误
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!