English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tiefere Verständnis der Variable Hohe in JavaScript

Eine Besonderheit der JavaScript-Funktion ist, dass sie den gesamten Funktionskörper scannt und alle deklarierten Variablen 'hochzieht', um sie an den Anfang der Funktion zu verschieben:

'use strict';
function foo() {
  var x = 'Hello, ' + y;
  alert(x);
  var y = 'Bob';
}
foo();

Obwohl es sich um den strict-Modus handelt, gibt es die Anweisung var x = 'Hello, ' + y; gibt keinen Fehler aus, weil die Variable y später deklariert wird. Aber alert zeigt 'Hello, undefined', was bedeutet, dass der Wert der Variable y 'undefined' ist. Dies liegt daran, dass der JavaScript-Engine die Deklaration der Variable y automatisch hebt, aber die Zuweisung nicht hebt.

Für die obige foo() Funktion sieht der Code, den der JavaScript-Engine sieht, so aus:

function foo() {
  var y; // Erheben Sie die Deklaration der Variablen y
  var x = 'Hello, ' + y;
  alert(x);
  y = 'Bob';
}

Wegen dieser merkwürdigen 'Eigenschaft' von JavaScript, bitte befolgen Sie strikt die Regel 'Alle Variablen im Funktionsbereich首先要声明' beim Definieren von Variablen in einer Funktion. Der häufigste Ansatz ist, alle Variablen, die im Funktionsbereich verwendet werden, mit var zu deklarieren:

function foo() {
  var
    x = 1, // x wird initialisiert auf1
    y = x + 1, // y wird initialisiert auf2
    z, i; // z und i sind undefined
  // Andere Anweisungen:
  for (i=0; i<100; i++) {
    ...
  }
}

Diese tiefere Verständnis der Variablenauflösung im JavaScript ist alles, was ich Ihnen mitteilen kann. Ich hoffe, es hilft Ihnen als Referenz und ich hoffe, dass Sie unsere Anleitung unterstützen und unterstützen.

Empfohlene Artikel