2016-01-02 5 views
7

Wir let Aussagen in for Schleifen mit mehreren Variablenzuweisungen verwenden können, zum Beispiel:Temporal tote Zone mit lassen in for-Schleife

for (let x = 0, y = 0; x < 10; ++ x); 

jedoch beginnen wir Diskrepanzen in Implementierungen bekommen, wenn wir eine Variable verweisen aus Ein weiterer; die folgenden Ergebnisse in Code in Chrome arbeiten, aber ein Reference in Firefox:

for (let x = 0, y = x; x < 10; ++ x); 

Firefox scheint nicht x-y unter zuweisen, nachdem der gesamte Ausdruck wird analysiert worden, während Chrome sofort tun. Beachten Sie, dass die folgenden Arbeiten in beiden Browsern (die gleiche Aussage außerhalb eines for Block):

let x = 0, y = x; // x = 0, y = 0 

Es scheint, als ob Firefox-Implementierung ist falsch (vor allem nach dem Fall außerhalb des for Block bedenkt), aber was bedeutet das ES6 Spezifikation sagen dazu? Ist das etwas, das gemeldet werden muss (oder wurde)?

Antwort

1

Firefox let ist eine alte Nicht-Standard-Implementierung. Der beste Ort zum Schauen ist http://kangax.github.io/compat-table/es6/. Angenommen, Sie sind in Firefox Stable (43), nicht, dass es derzeit aufgeführt ist, hat keine Unterstützung für ES6 let.