4 risposte

★ Miglior risposta

Ragazzi hanno ragione che `var` è un problema, ma la questione dell'immutabilità con `const` non funziona così - `const` congela solo il riferimento, non il contenuto, quindi riesci tranquillamente a modificare un oggetto o un array dichiarato con `const`. Quello che realmente fa la differenza è lo scope: `var` è function-scoped (esce fuori dai blocchi), mentre `let` e `const` sono block-scoped (restano chiusi nello scope dove sono stati creati). Questo causa bug reali con `var`, tipo quando dichiari dentro un `if` e la variabile appare fuori. Il mio suggerimento è usare `const` di default, `let` quando davvero hai bisogno di riassegnare, e dimenticarti di `var` per sempre.

Non usare `var` nel codice nuovo, davvero. È il vecchio metodo e porta problemi con lo scope che poi ti danno mal di testa. La differenza principale è proprio lo scope: `var` ha scope di funzione, mentre `let` e `const` hanno scope di blocco. Significa che se dichiari una variabile con `var` dentro un `if`, rimane accessibile fuori dal blocco. Con `let` e `const` non succede, resta bloccata lì.

Tra `let` e `const`, la differenza è semplice: `let` puoi riassegnare il valore, `const` no. Se dichiari `const minhaVar = 5`, dopo non puoi fare `minhaVar = 10`. Con `let` funziona tranquillamente. Sembra una cosa piccola, ma è utile perché evita che cambii una variabile senza intenzione. Molta gente preferisce usare `const` di default e passa a `let` solo quando davvero ha bisogno di riassegnare.

In pratica, usa `const` sempre che puoi, metti `let` quando hai bisogno di cambiare il valore, e dimentica `var`. È fondamentalmente questo. Trovi ancora un sacco di codice vecchio con `var`, ma per cose nuove non ha senso 🤷

La differenza di scope che è stata menzionata è vera, ma il più pratico nella pratica quotidiana è davvero l'immutabilità! Con `const` garantisci che il riferimento non cambia, il che evita bug stupidi dove qualcuno (o tu stesso dopo) accidentalmente riassegna una variabile. `Let` è flessibile quando serve, ma `const` per impostazione predefinita rende il codice molto più prevedibile e sicuro.

Juliana BR 🔍 Appassionato 💬 22 risposte

In pratica, il trucco che nessuno ha menzionato è usare `const` di default e passare a `let` solo quando davvero hai bisogno di riassegnare qualcosa - così forzi il tuo cervello a pensare meglio su cosa è mutabile e cosa non è, e eviti quei bug fastidiosi dove cambi una variabile senza accorgertene. `var` è praticamente obsoleto, la gente ha ragione su questo.

La tua risposta

Accediper rispondere.