CONTATTACI

Blog

Javascript let vs var: quali sono le differenze?

Fino all’introduzione della specifica ES6 i programmatori Javascript erano abituati a dichiarare ogni variabile con la parola chiave var, l’unica allora disponibile. Con ES6 sono però state introdotte due nuove parole chiave, let e const, che comportano alcune differenze di utilizzo. Vediamo dunque più in dettaglio quali sono le caratteristiche di let vs var in Javascript.

Scope locale o globale: qual è la differenza?

Per prima cosa facciamo chiarezza sul concetto di scope, cioè dove una variabile o una costante possono agire in una certa parte di codice. Proprio lo scope, infatti, è una delle principali differenze tra let e var.

Scope locale

Lo scope locale si riferisce solamente a un certo blocco, ovvero alle linee comprese tra due parentesi graffe {}. Le costanti e le variabili dichiarate all’interno di un blocco hanno dunque scope locale. Quando utilizziamo le parole chiave const o let per indicare costanti o variabili, queste funzioneranno dunque solamente nel blocco in cui sono dichiarate. Sono invece inaccessibili all’esterno del blocco in questione.

Scope globale

Una variabile o una costante dichiarate fuori da una funzione e non limitate da parentesi graffe {} in un blocco hanno invece scope globale. Sono quindi accessibili e utilizzabili nello script a livello globale

È bene notare che le variabili dichiarate all’interno di un blocco hanno la precedenza su quelle con scope globale. Come vedremo tra poco, la parola chiave let si può usare proprio per evitare che la variabile locale ne sovrascriva una globale.

let vs var in Javascript

Come già accennato, prima dell’avvento di ES6 era possibile dichiarare le variabili solamente tramite la parola chiave var. ES6 ha introdotto le nuove parole chiave const e let per dichiarare costanti e variabili. 

La parola chiave const, come è facile intuire, si utilizza per dichiarare una costante, ovvero una variabile che non si può riassegnare. Il suo scope è limitato al blocco in cui è dichiarata. 

Vediamo ora più nel dettaglio le differenze specifiche nelle parole chiave per le varianti, cioè let vs var in Javascript.

La parola chiave let

La parola chiave let è utilizzata per dichiarare variabili legate al blocco entro il quale compare. Dichiarare una variabile con let limita dunque lo scope a quello specifico blocco. Ciò significa anche che non andrà a sovrascrivere variabili globali e non sarà accessibile tramite l’oggetto window.

Se cerchiamo di richiamare una variabile indicata con let al di fuori del blocco in cui si trova riceveremo a console un messaggio di Reference error.

Le variabili dichiarate con let, inoltre, non si possono ri-dichiarare all’interno dello stesso scope, ma solamente in blocchi differenti.

La parola chiave var

Una variabile dichiarata attraverso la parola chiave var non è limitata al blocco, ma può essere utilizzata all’interno della funzione in cui si trova. La variabile ha quindi uno scope di funzione. In questo caso, la variabile può essere richiamata al di fuori del blocco in cui è dichiarata in quanto non è limitata allo scope di blocco. Ha inoltre scope globale, essendo accessibile tramite l’oggetto window.

A differenza della variabile let, la variabile var può essere ri-dichiarata all’interno dello stesso scope. In questo caso il primo valore sarà semplicemente rimpiazzato.

Hoisting di let vs var in Javascript

Per hoisting si intende in comportamento di Javascript che permetteva di utilizzare variabili prima che fossero dichiarate. Questo è vero per le variabili indicate con la parola chiave var, che sono accessibili già in cima al blocco di codice in cui si trovano, anche se in realtà saranno poi dichiarate soltanto più in basso.

Ciò non si applica però alle variabili indicate con la parola chiave let. Queste non sono infatti inizializzate prima della dichiarazione vera a propria, e cercare di utilizzarle prima della linea di codice in cui compaiono risulterà in un Reference error.

Sommario delle differenze tra let vs var in Javascript

In conclusione, esistono quattro principali differenze nel dichiarare le variabili con let vs var in Javascript, ovvero:

  1. Lo scope: mentre la parola chiave let crea una variabile il cui scope è legato al blocco in cui è dichiarata, la parola chiave var crea una variabile con scope di funzione;
  2. La ri-dichiarazione di una variabile non è possibile all’interno dello stesso scope utilizzando la parola chiave let, che creerebbe altrimenti un Reference error a console. Con la parola chiave var, invece, si ha più flessibilità ed è possibile ri-dichiarare la variabile senza problemi;
  3. Hoisting: le variabili let non si possono utilizzare prima della linea in cui sono dichiarate, mentre le variabili var sono inizializzate già all’inizio del blocco in cui compaiono;
  4. Proprietà globali: se la variabile var è utilizzata al di fuori di una funzione crea una variabile globale accessibile tramite l’oggetto window, cosa che non avviene con la variabile let.

Articoli correlati

Il linguaggio HTML (Hypertext Markup Language) è uno dei più conosciuti e diffusi: lo si trova infatti praticamente in tutte le pagine web esistenti. È una scelta popolare tra i principianti che si…

Seguici su Facebook

Vuoi entrare nel mondo della programmazione?

Scopri di più sui nostri corsi!

Chiamaci al numero verde

Contattaci su WhatsApp

Contattaci senza impegno per informazioni sul corso

Pagamento rateale

Valore della rata: A PARTIRE DA 115 €/mese.

Esempio di finanziamento 

Importo finanziato: € 2440 in 24 rate da € 115 – TAN fisso 9,55% TAEG 12,57% – importo totale del credito € 2841.

Il costo totale del credito comprende: interessi calcolati al TAN indicato, oneri fiscali (imposta di bollo sul contratto 16,00 euro*) addebitati sulla prima rata, costo mensile di gestione pratica € 3,90, spesa di istruttoria € 0,00, spesa per invio rendicontazione periodica cartacea € 0,98 (o spesa per invio rendicontazione periodica cartacea € 0,00), imposta di bollo su rendicontazione periodica € 0,00. Modalità di rimborso obbligatoria: addebito diretto su c/c. La scadenza delle rate è determinata dal giorno della liquidazione del contratto; la data di scadenza delle rate è prevista il giorno 15 del mese. L’importo di ciascuna rata comprende una quota di capitale crescente e interessi decrescente secondo un piano di ammortamento “alla francese”. Offerta valida dal 01/01/2024 al 31/12/2024.

Messaggio pubblicitario con finalità promozionale. Per le informazioni precontrattuali richiedere sul punto vendita il documento “Informazioni europee di base sul credito ai consumatori” (SECCI) e copia del testo contrattuale. Salvo approvazione di Sella Personal Credit S.p.A. Aulab S.r.l. opera quale intermediario del credito NON in esclusiva.

*In fase di richiesta del finanziamento verrà proposta la facoltà di selezionare, in alternativa all’imposta di bollo sul contratto di 16,00 euro, l’imposta sostitutiva, pari allo 0,25% dell’importo finanziato.

Pagamento rateale

Valore della rata: A PARTIRE DA 210 €/mese.

Esempio di finanziamento  

Importo finanziato: € 4500 in 24 rate da € 210,03 – TAN fisso 9,68% TAEG 11,97% – importo totale del credito € 5146,55.

Il costo totale del credito comprende: interessi calcolati al TAN indicato, oneri fiscali (imposta di bollo sul contratto 16,00 euro*) addebitati sulla prima rata, costo mensile di gestione pratica € 3,90, spesa di istruttoria € 0,00, spesa per invio rendicontazione periodica cartacea € 0,98 (o spesa per invio rendicontazione periodica cartacea € 0,00), imposta di bollo su rendicontazione periodica € 0,00. Modalità di rimborso obbligatoria: addebito diretto su c/c. La scadenza delle rate è determinata dal giorno della liquidazione del contratto; la data di scadenza delle rate è prevista il giorno 15 del mese. L’importo di ciascuna rata comprende una quota di capitale crescente e interessi decrescente secondo un piano di ammortamento “alla francese”. Offerta valida dal 01/01/2024 al 31/12/2024.

Messaggio pubblicitario con finalità promozionale. Per le informazioni precontrattuali richiedere sul punto vendita il documento “Informazioni europee di base sul credito ai consumatori” (SECCI) e copia del testo contrattuale. Salvo approvazione di Sella Personal Credit S.p.A. Aulab S.r.l. opera quale intermediario del credito NON in esclusiva.

* In fase di richiesta del finanziamento verrà proposta la facoltà di selezionare, in alternativa all’imposta di bollo sul contratto di 16,00 euro, l’imposta sostitutiva, pari allo 0,25% dell’importo finanziato.

Contattaci senza impegno per informazioni sul corso

Scopriamo insieme se i nostri corsi fanno per te. Compila il form e aspetta la chiamata di uno dei nostri consulenti.