Qual è la differenza tra Var, Let e ​​Const in Javascript

Feb 13 2023
Mi è stato chiesto durante un colloquio. In quel momento sapevo che aveva qualcosa a che fare con l'ambito ma non potevo spiegarlo chiaramente e che var proveniva da ES5 mentre let e const è ES6 che è solo la versione più recente di Javascript.

Mi è stato chiesto durante un colloquio. In quel momento sapevo che aveva qualcosa a che fare con l'ambito ma non potevo spiegarlo chiaramente e che var proveniva da ES5 mentre let e const è ES6 che è solo la versione più recente di Javascript. Così ho deciso di ripercorrere i fondamenti di Javascript e vedere se riesco a mettere ciò che imparo con parole mie.

Var Vs Let Vs Const

Quindi qual è la differenza tra tutti e 3 e perché è importante? Oltre a essere testato su questo durante un'intervista, può darti conseguenze indesiderate durante la codifica. Var non ha un ambito di blocco ma Let e ​​Const sì. L'ambito del blocco è il codice che vedi all'interno di { } e le cose al di fuori delle parentesi non possono accedere alle cose al suo interno. È facile vedere con esempi

Ecco un esempio che utilizza Var

Cosa pensi verrà registrato dalla console?

Se la tua risposta è Albert due volte, allora hai ragione. Poiché Var non ha un ambito di blocco, la variabile name è stata sovrascritta in Albert alla riga 4 e console.log alle righe 5 e 8 fa riferimento alla riga 4.

Confronta con quando usi Let e ​​Const

Perché let e const console hanno registrato sia Albert che Sam invece che solo Albert. Questo ha a che fare con il modo in cui i dati vengono referenziati in memoria. Pensa al nome nella riga 4 nuova memoria creata per let e const e non essere in grado di accedervi al di fuori delle parentesi mentre var nome sulla riga 4 fa riferimento al nome sulla riga 1.

Ecco un esempio per renderlo più chiaro

Come puoi vedere, poiché var non ha un ambito di blocco, ha accesso all'interno delle parentesi ma let e const lo fanno non è possibile accedervi al di fuori delle parentesi. Quindi, tornando all'esempio precedente della riga 1 e 4 che utilizza var name fa riferimento alle stesse variabili di nome, la riga let e const 1 e 4 fa riferimento a 2 diverse variabili di nome. Entrerò più in dettaglio quando parlerò di pass by value vs pass by reference .

Anche una differenza principale tra let e const è che puoi riassegnare i valori a let ma non a const.

Ecco un esempio qui sotto

Come puoi vedere quando usi let puoi cambiare i dati in qualsiasi cosa dopo aver dichiarato la variabile.

Rispetto a const in cui non è possibile modificare i dati una volta dichiarati. Aiuta a prevenire alcune conseguenze indesiderate utilizzando const.

Una buona regola empirica per quando usare let vs const è se sai che i dati possono cambiare, ad esempio un punteggio, allora usa let. Se è improbabile che i dati cambino, utilizzare const.

Quindi si spera che questo aiuti a rafforzare la tua comprensione di var, let e const. Provalo tu stesso su un ambiente di sviluppo integrato (IDE), che ho usatohttps://replit.com/~un IDE web per aiutare a scrivere questo articolo.