Variabili JavaScript - Qual è la differenza tra var, let e const in JavaScript?

Variabili JavaScript - Qual è la differenza tra var, let e const in JavaScript?
In ECMAScript 2016, JavaScript ha introdotto due nuovi metodi per dichiarare variabili permettere E const Parole chiave. JavaScript aveva solo un'opzione per dichiarare variabili prima del 2016 i.e. IL var parola chiave. In questo articolo impareremo perché ci sono tre modi diversi per dichiarare variabili in JavaScript; Copriremo anche la differenza tra questi tre articoli. Inoltre, questo articolo ti introdurrà anche concetti come portata variabile e sollevamento. Quindi iniziamo capendo cos'è l'ambito variabile:

Cosa c'è di portata in JavaScript

In JavaScript, l'ambito è definito da parentesi ricci. Definisce un blocco di codice che deve essere eseguito insieme. JavaScript ha due tipi di ambiti:

  • Funzione di funzione
  • Scopi a blocchi

Function-Scope: Qualsiasi variabile in JavaScript creata all'interno di una funzione utilizzando var è scoperto di funzione. La sua visibilità è limitata alla definizione della funzione e non è possibile accedere da nessuna parte al di fuori della funzione:

funzione showMessage ()
VAR Message = 'HI da LinuxHint';
console.log ("in:" + messaggio); // 'ciao, linuxhint!'

showMessage ();
console.log ("out:" + messaggio); ReferenceError: il messaggio non è definito

Scopi a blocchi: Un blocco di codice in JavaScript è definito da Curly Braces. Questo tipo di portata ci aiuterà a distinguere in modo prominente tra i tre metodi di dichiarazione delle variabili:

Di seguito è riportato un esempio in cui abbiamo dichiarato variabili con var, let e const in un blocco if e quindi li ha registrati alla console:

se è vero)
var message1 = 'ciao da linuxhint';
Let Message2 = 'Hello from LinuxHint';
const message3 = 'ciao di nuovo da linuxhint';
console.log ("in:" + messaggio1); // 'ciao da Linuxhint';
console.log ("in:" + message2); // 'Hello from LinuxHint';
console.log ("in:" + message3); // 'ciao di nuovo da linuxhint';

Tutte le variabili sono state registrate alla console senza alcun errore in quanto sono state registrate dallo stesso blocco.

Tuttavia, se proviamo a registrarli dall'esterno del blocco IF, verrà visualizzato l'errore di seguito:

se è vero)
var message1 = 'ciao da linuxhint';
Let Message2 = 'Hello from LinuxHint';
const message3 = 'ciao di nuovo da linuxhint';
console.log ("in:" + messaggio1); // 'ciao da Linuxhint';
console.log ("in:" + message2); // 'Hello from LinuxHint';
console.log ("in:" + message3); // 'ciao di nuovo da linuxhint';

console.log ("out:" + message1); // 'ciao da Linuxhint';
console.log ("out:" + message2); // ReferenceError: Message2 non è definito
console.log ("out:" + message3); // ReferenceError: Message3 non è definito

Come usare var per dichiarare una variabile in JavaScript

Prima di ECMAScript 2016 var era l'unico metodo per dichiarare una variabile in JavaScript ma aveva diversi problemi ad essa associati, quindi furono introdotti nuovi metodi che potevano essere usati per dichiarare variabili. Prima capiremo var E poi parleremo di questi problemi:

Ambito di var: L'ambito variabile significa sostanzialmente dove la variabile sarà disponibile per l'uso. Variabili dichiarate con il var la parola chiave ha un ambito globale o locale.

Variabili che vengono dichiarate blocchi di funzione esterna utilizzando var avere un ambito globale. Ambito globale significa che una variabile è disponibile per l'uso ovunque nella finestra.

Quando la variabile viene dichiarata all'interno di una funzione, è scoppiata dalla funzione, il che significa che può essere utilizzata solo all'interno della funzione:

Per capire ulteriormente, guarda l'esempio seguente:

funzione showMessage ()
VAR Message = 'HI da LinuxHint';

Qui, il Messaggio è la funzione ammessa, quindi non è possibile accedere al di fuori della funzione. Quindi se lo facciamo:

funzione showMessage ()
VAR Message = 'HI da LinuxHint';

console.log ("out:" + messaggio); // ReferenceError: il messaggio non è definito

Questo ci darà un errore che è perché il Messaggio non è disponibile al di fuori della funzione.

var al di fuori di un circuito: La variabile "io" è possibile accedervi dall'esterno del loop per.

per (var i = 0; i < 5; i++)
console.log ("in:" + i);

console.log ("out:" + i);

Le variabili var possono essere riclassificate e aggiornate: In javascript variabili dichiarate con var La parola chiave può essere ridotta e aggiornata nello stesso ambito:

funzione showMessage ()
VAR Message = 'HI da LinuxHint';
messaggio = 'ciao da linuxhint';
var message = 'ciao di nuovo da linuxhint';
console.registro (messaggio); // 'ciao di nuovo da linuxhint';

showMessage ()

Come usare Let per dichiarare una variabile in JavaScript: IL permettere ora è preferita la parola chiave var per dichiarazioni variabili; Viene fornito con alcuni miglioramenti var.

Lascia che sia un blocco ampliato: In JavaScript, un blocco di codice è la raccolta di istruzioni che sono delimitate da una coppia di parentesi ricci . Una variabile dichiarata usando il file permettere La parola chiave è disponibile solo per l'uso all'interno di quel blocco e non può essere accessibile dall'esterno:

se è vero)
Let Message = 'Hi from LinuxHint';
console.log ("in:" + messaggio); // "ciao da linuxhint"

console.log ("out:" + messaggio); // ReferenceError

Se usiamo il Messaggio al di fuori del blocco dove è stato definito, restituirà un errore. Questo perché le variabili let sono scavate a blocchi.

Lasciare fuori da un circuito: Il seguente esempio che dimostra il permettere output variabile utilizzando per loop:

per (let i = 0; i < 5; i++)
console.log ("in:" + i);

console.log ("out:" + i);

Lascia che possa essere aggiornato ma non ricleviato: Una variabile dichiarata con permettere può essere aggiornato nel suo ambito proprio come var, Ma a differenza di var, Non può essere ridecbrato:

Let Message = 'Hi from LinuxHint';
messaggio = 'ciao da linuxhint';

La console è completamente vuota e non sta restituendo errori. Queste dichiarazioni restituiranno un errore:

Let Message = 'Hi from LinuxHint';
Let Message = 'Hello from LinuxHint'; // Syntaxerror: Identifier 'Message' è già stato dichiarato

Tuttavia, ridefinire la stessa variabile in un ambito diverso usando permettere non restituisce alcun errore:

Let Message = 'Hi from LinuxHint';
se è vero)
Let Message = 'Hello from LinuxHint';
console.log ("in:" + messaggio); // "ciao da linuxhint"

console.log ("out:" + messaggio); // "ciao da linuxhint"

IL permettere La parola chiave tratta queste due variabili come diverse se si trovano in ambiti diversi, quindi non restituisce alcun errore; questa caratteristica del permettere La parola chiave lo rende una scelta migliore di var. Quando si usa permettere, Puoi riutilizzare nomi delle variabili in ambiti diversi senza preoccuparti se hai usato quel nome variabile prima.

Come utilizzare const per dichiarare la variabile in JavaScript

Le variabili dichiarate usando il file const La parola chiave ha valori costanti. Ciò significa che i loro valori non possono essere modificati/riassegnati. Simile alle variabili dichiarate con il permettere parola chiave, le variabili dichiarate con il var anche la parola chiave è scoppiata a blocchi.

const non può essere ri-declassato o riassegnato: Le variabili dichiarate con la parola chiave const non può essere ridecbrato o riassegnato all'interno dello stesso ambito. Quindi, se abbiamo dichiarato una variabile con la parola chiave const, non possiamo farlo:

const message = 'ciao da linuxhint';
messaggio = 'ciao da linuxhint'; // typeerror

Né saremo in grado di farlo:

const message = 'ciao da linuxhint';
const message = 'Hello from LinuxHint'; // Errore di sintassi

Ogni variabile dichiarata utilizzando il const La parola chiave deve essere inizializzata al momento della sua dichiarazione.

Questo comportamento del const La parola chiave cambia in qualche modo quando si tratta di oggetti. Mentre l'oggetto dichiarato non può essere aggiornato, le sue proprietà possono essere modificate

Quindi, se dichiariamo un oggetto con const:

const user =
Nome: "Steve",
Età: 13

Anche se questo non può essere fatto:

utente =
Nome utente: "Harry",
Grado: "3 °"
// typeerror: assegnazione a variabile costante.

Questo può essere fatto:

utente.name = "Harry";

Questo cambierà il valore del utente.nome senza restituire errori.

Revisione finale

Dichiarazione variabile Funzione di funzione Scopi a blocchi Ridefinibile
var
permettere
const

Conclusione

È generalmente una buona pratica da evitare di usare var Dichiarare variabili in JavaScript perché l'ambito della funzione è confuso e non è evidente come l'ambito del blocco. IL permettere E const Le parole chiave incoraggiano gli sviluppatori a utilizzare migliori pratiche di codifica. In genere dovresti usare permettere Per le variabili di cui avrai bisogno per riassegnare e utilizzare il const Parole chiave per tutte le altre variabili. Questo articolo spiega a fondo tutti e tre i tipi variabili con esempi.