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!