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:
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?
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
- Sei oldEnv die lexikalische Umgebung des laufenden Ausführungskontextes.
- Lassen Sie loopEnv das Ergebnis des Aufrufs von NewDeclarativeEnvironment sein, indem Sie oldEnv als Argument übergeben.
- ...
Beachten Sie jedoch, dass Änderungen noch möglich sind.
Tags und Links javascript ecmascript-6