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

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

清浅
清浅Original
2019-04-22 15:05:213782Durchsuche

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.

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

[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 = &#39;Tyler&#39;
const handle = &#39;tylermcginnis&#39;
name = &#39;Tyler McGinnis&#39; //正确
handle = &#39;@tylermcginnis&#39; //错误

Das Deklarieren eines Objekts bedeutet also nicht, dass keine seiner Eigenschaften geändert werden kann. Es bedeutet nur, dass ihm kein neuer Wert zugewiesen werden kann.

Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, er wird für alle hilfreich sein 🎜>

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