let
è il nuovovar
.
Apparentemente l'unica differenza è che var
viene portata alla funzione corrente , mentre let
viene portata al blocco corrente . Ci sono alcuni buoni esempi in questa risposta .
Non riesco a vedere alcun motivo per utilizzare var
nel codice ES6. Anche se si desidera estendere una determinata variabile all'intera funzione, è possibile farlo let
inserendo la dichiarazione nella parte superiore del blocco funzione, che è ciò che si dovrebbe fare var
comunque per indicare l'ambito effettivo. E se vuoi mirare qualcosa di più finemente in un for
blocco o qualcosa, puoi farlo anche tu.
Quindi il mio istinto è smettere di usarlo del var
tutto quando si scrive il codice ES6.
La mia domanda è: mi sbaglio su questo? Esiste un caso legittimo in cui var
sarebbe preferibile rispetto a let
?
let
un'istruzione proprio all'inizio di una funzione, penso che sia altrettanto ovvio che hai intenzione di estenderla all'intera funzione. Non credo che l'uso lo var
renda più chiaro del semplice localizzarlo in alto.
var
esista ancora, sia la retrocompatibilità. Se non fosse stato per quello, avrebbero rimosso del var
tutto, o mai introdotto let
in primo luogo, cambiando invece la semantica di var
ciò che probabilmente avrebbe dovuto essere da sempre.
var
, e non abbastanza da giustificare un terzo tipo di variabile che salta in giro. Puoi mirare let
a un'intera funzione semplicemente posizionandola nella parte superiore della funzione, che è molto più chiara nell'intento rispetto alla scrittura var
in un blocco (per farla sollevare da quel blocco in modo da poterlo usare fuori dal blocco - strano). Egli avverte che se si esegue l'ambito let
a una funzione, "è solo la posizione che segnala la differenza, piuttosto che la sintassi", ma penso che sia una buona cosa.
var
. gli esempi che presenta per mantenere var
sembrano inventati e si basano su gravi errori di codifica. È molto meglio incorrere in un errore ed essere costretti a correggere tali errori piuttosto che utilizzare le funzioni del linguaggio che consentono di cavarsela! Qual è il prossimo, consiglia di avvolgere tutto in un tentativo / cattura per evitare arresti anomali? Il resto di quel link è buono ma non sono affatto d'accordo con quella parte particolare.
var
come indicatore consapevole che questa variabile sia destinata a essere portata all'intera funzione potrebbe essere un'utile convenzione di "auto-documentazione" .