Heim  >  Artikel  >  Web-Frontend  >  Detaillierte Erläuterung des ES6-Blockebenenbereichs

Detaillierte Erläuterung des ES6-Blockebenenbereichs

小云云
小云云Original
2018-01-26 16:45:571547Durchsuche

Wie wir alle wissen, verfügte die JavaScript-Sprache vor ES5 nur über einen Funktionsbereich und einen globalen Bereich. Bei der Verwendung von var zum Deklarieren von Variablen verfügen Variablen, die mit var deklariert wurden, auch über eine Variablenheraufstufung, was verwirrend ist. Sehen wir uns zunächst die var-Deklaration von ES5 an und vergleichen dann let und const.

var

Var-Deklarationsfunktionsbereich und globaler Bereich.

Werfen wir einen Blick auf den Code:

function getName() {
 if (1 + 1 === 2) {
 var name = 'xixi';
 }

 console.log(name);
}

getName();//xixi

In der C- oder Java-Sprache sollte der Name nur im if-Block verwendet werden, aber es kann auch außerhalb von darauf zugegriffen werden Wenn dies der Fall ist, ist dies ein Zeichen dafür, dass js keinen Gültigkeitsbereich auf Blockebene hat. Dieser Nachteil ist in der for-Schleife sehr offensichtlich:

for (var i = 0; i < 10; i ++) {
 // ...
}

console.log(i);// 10

Die ursprüngliche Absicht von var i besteht darin, eine temporäre Variable i zu deklarieren, die zum Durchlaufen von Arrays usw. verwendet wird. Auf sie sollte nicht außerhalb von for zugegriffen werden Schleife, aber jetzt Aber kann darauf zugegriffen werden, um Ihnen zu sagen, ob es problematisch ist oder nicht? Bessere Programmierer werden Funktionen zur sofortigen Ausführung verwenden, um den Bereich auf Blockebene zu simulieren. Ursprünglich würde ich darauf achten und versuchen, nicht denselben Variablennamen zu verwenden.

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des ES6-Blockebenenbereichs. 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