In questo tutorial ci occupiamo dei diversi metodi di dichiarazione delle variabili in JavaScript, in particolare delle parole chiave let e const dello standard ES6 rispetto a var, che fino a ES5 era l'unico modo per creare variabili. Molti sviluppatori si sono imbattuti in comportamenti inaspettati durante l'uso di var che hanno portato a bug. Questa lezione ti aiuterà a comprendere i metodi moderni e a garantire che tu dichiari e utilizzi le variabili in modo efficace.
Principali conclusioni
Le nuove dichiarazioni di variabili let e const offrono vantaggi riguardo il scope, la visibilità e la sicurezza nell'utilizzo delle variabili. let consente l'uso di una variabile all'interno di uno scope di blocco, mentre const genera un'assegnazione immutabile.
Guida passo-passo
Dichiarazione delle variabili
Per lavorare in modo efficace con le variabili in JavaScript, esamineremo prima la dichiarazione delle variabili utilizzando var, let e const. Iniziamo con il file main.js, che è incluso nel tuo documento HTML.

Qui utilizzeremo la parola chiave var per dichiarare una variabile. Creiamo una variabile di nome W e assegniamo un valore iniziale.
Comportamento di var
Un comportamento tipico di var è che la variabile è visibile anche se la inizializzi solo più tardi nel codice. Proviamo a testarlo:
Aggiungerò un output nella console di C prima dell'inizializzazione. Aspettati il risultato quando imposterò la variabile C a 0. Nell'output dovrebbe apparire undefined, poiché il valore viene impostato solo dopo la riga di assegnazione.
Introduzione di let
Ora diamo un'occhiata a let. Per mostrare la differenza, sostituisci var con let e inizializza la variabile C con let C = 0.
Quando provo a utilizzare C prima dell'assegnazione, ricevo un messaggio di errore che indica che sto accedendo a una variabile non inizializzata. Questo comportamento garantisce che tu riceva sempre un errore quando provi ad accedere a una variabile non definita.

Blockscope con let
Un ulteriore vantaggio di let è la possibilità di dichiarare una variabile all'interno di uno scope di blocco. Usiamo un'istruzione if per farlo:
Se creo let C = -1 all'interno del blocco if, questa variabile è visibile solo all'interno di questo scope di blocco. Se provo a usare C al di fuori del blocco, ricevo un errore.

Uso di const
Il passo successivo è l'uso di const. Se usassi const invece di let, creerei una variabile costante che non può più essere cambiata.
Quando provo a riassegnare C dopo l'assegnazione const C = 0, mi viene mostrato che non posso assegnare un nuovo valore a una variabile costante.
Oggetti immutabili con const
Quando usiamo const per dichiarare un oggetto, l'oggetto stesso può ancora essere modificato, ma non la sua referenza. Posso aggiungere elementi all'oggetto senza ulteriori problemi.
Best Practices per l'uso di let e const
Basandomi sulla mia esperienza, consiglio di utilizzare const di default, a meno che tu non sia sicuro che il valore della variabile debba essere cambiato in seguito. Questa pratica porta a un codice più leggibile e manutenibile.
Usa let quando è necessario cambiare il valore all'interno di uno scope di blocco. Un esempio potrebbe essere una variabile di conteggio in un ciclo.
Riflessioni finali – Dichiarazione delle variabili in JavaScript: let e const contro var
In sintesi, abbiamo esaminato le differenze tra var, let e const. let e const offrono miglioramenti sostanziali riguardo lo scope e la sicurezza delle variabili. Mentre var è globale o locale alla funzione, let e const garantiscono la visibilità all'interno di uno scope di blocco. Inoltre, const garantisce l'immutabilità dell'assegnazione, riducendo bug e comportamenti inattesi nel codice.
Domande frequenti
Come dichiaro una variabile in JavaScript?Puoi dichiarare una variabile in JavaScript con le parole chiave var, let o const.
Qual è la differenza tra let e var?let consente la dichiarazione di variabili che sono visibili solo all'interno di uno scope di blocco, mentre var è visibile globalmente.
Quando dovrei usare const?const dovrebbe essere usato quando sei sicuro che il valore di una variabile non debba essere cambiato durante l'esecuzione del programma.
Cosa succede se provo a riassegnare una costante?Riceverai un errore, poiché una variabile const non può essere modificata.
Posso modificare oggetti con const?Sì, puoi modificare le proprietà di un oggetto dichiarato con const, ma non la referenza all'oggetto stesso.