For-Schleifen erzeugen implizit einen Block?

8

Ich spiele mit let in Node.JS (benötigt die Flags --harmony und --use-strict ). Soweit ich weiß, erlaubt die let -Anweisung Blockbereichsdeklarationen. Berücksichtigen Sie Folgendes:

%Vor%

Wie viele Blockbereiche sind betroffen? In welchem ​​Blockbereich lebt i ? Habe ich richtig gedacht, dass es für dieses Beispiel drei Blockbereiche gibt, wobei ein Bereich implizit durch die for Schleife wie folgt erzeugt wird?

%Vor%     
Randomblue 27.06.2013, 20:51
quelle

1 Antwort

6

Basierend auf dem letzten (14. Mai 2013) Entwurf von ES6 : ja.

Sie finden Folgendes unter Abschnitt 12.6.3, in dem angegeben wird, dass eine zusätzliche Umgebung (Geltungsbereich) erstellt wird, wenn eine for -Anweisung eine LexicalDeclaration enthält ( let oder const ):

  

Iterationsstatement : für ( LexicalDeclarationNoIn ; Ausdruck opt ; ) Ausdruck opt ) Anweisung

     
  1. Sei oldEnv die lexikalische Umgebung des laufenden Ausführungskontextes.
  2.   
  3. Lassen Sie loopEnv das Ergebnis des Aufrufs von NewDeclarativeEnvironment sein, indem Sie oldEnv als Argument übergeben.
  4.   
  5. ...
  6.   

Beachten Sie jedoch, dass Änderungen noch möglich sind.

    
Jonathan Lonowski 27.06.2013, 21:05
quelle

Tags und Links