Code: Select all
for ( [lookahead ≠ let [] LeftHandSideExpression in Expression ) Statement
for ( [lookahead ∉ { let, async of }] LeftHandSideExpression of AssignmentExpression )
Warum gibt es einen Unterschied zwischen let und let? [ negativer Lookahead?
Das for-in hat let [ als negativen Lookahead, ich gehe davon aus, dass diese Syntax nicht durch die obige Zeile abgedeckt wird:< /p>
Code: Select all
for (let[a] in [1]) ;
Stattdessen wird diese Syntax durch eine andere Zeile abgedeckt, die sie zu einer let-Deklaration mit einem Array-Zerstörungsmuster macht.
Was Sinn macht.Dies wird durch die obige Zeile im For-In abgedeckt und ist gültig Fall:
Code: Select all
for (let.a in [1]) ;
Dies ist jedoch für den for-of-Fall nicht zulässig:
Code: Select all
for (let.b of [1]) ;
Uncaught SyntaxError: an expression X in 'for (X of Y)' darf nicht beginnen mit 'let'
Node und Chrome sagen:
SyntaxError: The left -Hand-Seite einer for-of-Schleife darf nicht mit beginnen 'let'.
Es muss etwas mehr Eindeutigkeit für die for-of-Schleife geben, die die Einschränkungen für diese Schleife erweitert. Was ist diese Eindeutigkeit?< /P>