letè il nuovovar.
Apparentemente l'unica differenza è che varviene portata alla funzione corrente , mentre letviene portata al blocco corrente . Ci sono alcuni buoni esempi in questa risposta .
Non riesco a vedere alcun motivo per utilizzare varnel codice ES6. Anche se si desidera estendere una determinata variabile all'intera funzione, è possibile farlo letinserendo la dichiarazione nella parte superiore del blocco funzione, che è ciò che si dovrebbe fare varcomunque per indicare l'ambito effettivo. E se vuoi mirare qualcosa di più finemente in un forblocco o qualcosa, puoi farlo anche tu.
Quindi il mio istinto è smettere di usarlo del vartutto quando si scrive il codice ES6.
La mia domanda è: mi sbaglio su questo? Esiste un caso legittimo in cui varsarebbe preferibile rispetto a let?
letun'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 varrenda più chiaro del semplice localizzarlo in alto.
varesista ancora, sia la retrocompatibilità. Se non fosse stato per quello, avrebbero rimosso del vartutto, o mai introdotto letin primo luogo, cambiando invece la semantica di varciò che probabilmente avrebbe dovuto essere da sempre.
var, e non abbastanza da giustificare un terzo tipo di variabile che salta in giro. Puoi mirare leta un'intera funzione semplicemente posizionandola nella parte superiore della funzione, che è molto più chiara nell'intento rispetto alla scrittura varin 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 leta 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 varsembrano 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.
varcome indicatore consapevole che questa variabile sia destinata a essere portata all'intera funzione potrebbe essere un'utile convenzione di "auto-documentazione" .