Nell'ultimo paio di mesi, ho imparato molto su JavaScript. Avendo abusato delle lingue per anni, oserei dire che ora ho una migliore comprensione della lingua e sono arrivato a amore i vantaggi della sua natura funzionale.
Ultimamente ho iniziato a imparare Scheme, ma è solo per divertimento. Navigando in MDN reference ho notato che JS, anche se manca la portata del blocco, ha una parola chiave che può essere utilizzato per dichiarare una variabile locale ad un determinato blocco, molto simile let
di Schema:lascia var o var per lasciare
for (var i=0;i<someArray.length;i++)
{
console.log(someArray[i]);
}
console.log(i);//will log someArray's length
considerando quanto segue:
for (let i=0;i<someArray.length;i++)
{
console.log(someArray[i]);
}
console.log(i);//undefined
Quindi quello che voglio sapere ora è: perché non è più utilizzato lo let
? Ha qualcosa a che fare con il supporto X-browser? È solo uno di quelli meno noti-goodies?
In breve, quali sono i vantaggi dell'utilizzo di var
su let
, quali sono i problemi?
Per quanto posso dire, il comportamento di let
è, semmai, più consistente (doppie dichiarazioni in un unico blocco sollevano TypeError
, tranne che per i corpi di funzione (bozze ECMA6 risolvere questo problema, però).
Per essere onesto, oltre a questa funzione/parola chiave non essendo molto noto, faccio fatica a pensare a alcun argomento contro l'uso let
cicli for, o dovunque dove una variabile temporanea rende il codice più leggibile.
Non può accettare la tua risposta (5 minuti in più), ma hai assolutamente ragione, e condivido le vostre speranze ... sciocco, anche se , Attualmente sto usando Chrome, e se mi fossi appena trovato il tempo di aprire la mia console e provare 'lascia x = 1; 'avrei saputo che c'era un problema lì. Sciocco, ma ancora: "speriamo che tutti quelli che leggono questa domanda inviino una richiesta di supporto a ASAP nella mailing list dell'ECMA :) –
@EliasVanOotegem: Sì, l'ultima volta che ho sentito il loro obiettivo è dicembre 2013, quindi abbiamo ho atteso, ma puoi abilitare alcune delle nuove funzionalità che sono state implementate in Chrome impostando un flag di avvio per consentire JavaScript sperimentale. Non sono sicuro se 'let' è incluso tra quelli. Per impostarli, digita 'chrome: // flags /' nella barra degli indirizzi di chrome. –
Solo abilitate le funzionalità sperimentali, e 'let' è supportato, tuttavia ci sono alcune differenze tra FF e chrome, sebbene una parte di essa potrebbe essere dovuta al modo in cui la console _eval_ è il codice. Ad ogni modo un grande +1 e grazie per il link –