JavaScript let Vs var (con esempi)

In questo tutorial, imparerai la differenza tra let e var in JavaScript con l'aiuto di esempi.

In JavaScript, sia le parole chiave varche letvengono utilizzate per dichiarare le variabili.

La letparola chiave è stata introdotta nella versione successiva di JavaScript nota come ES6 (ES2015) . Ed è il modo preferito per dichiarare le variabili.

JavaScript lascia che Vs var

Ecco la panoramica delle differenze tra lete var.

permettere var
let ha un ambito di blocco. var ha un ambito di funzione.
let non consente di ridichiarare le variabili. var permette di ridichiarare le variabili.
Il sollevamento non avviene in let. Il sollevamento avviene in var.

JavaScript lascia Vs var in Local Scope

var ha un ambito di funzione

La variabile dichiarata all'interno di una funzione con varpuò essere utilizzata ovunque all'interno di una funzione. Per esempio,

 // program to print text // variable a cannot be used here function greet() ( // variable a can be used here var a = 'hello'; console.log(a); ) // variable a cannot be used here greet(); // hello

Nel programma precedente, la variabile a è dichiarata con var. La variabile a può essere utilizzata ovunque all'interno della funzione greet.

let ha un ambito di blocco

La variabile dichiarata con letè accessibile solo all'interno di un blocco di codice. Per esempio,

 // program to print the text // variable a cannot be used here function greet() ( let a = 'hello'; // variable b cannot be used here if(a == 'hello')( // variable b can be used here let b = 'world'; console.log(a + ' ' + b); ) // variable b cannot be used here console.log(a + ' ' + b); // error ) // variable a cannot be used here greet();

Produzione

 hello world Uncaught ReferenceError: b non è definito

Nel programma precedente, la variabile a è dichiarata all'interno della funzione ed è possibile accedervi ovunque all'interno della funzione (a diventa con scope funzione).

Tuttavia la variabile b è dichiarata all'interno ifdell'istruzione block. b avrà un ambito di blocco e sarà possibile accedervi solo all'interno del ifblocco.

Pertanto, quando si tenta di accedere a b fuori dal ifblocco, si verifica un errore (come mostrato sopra nel programma).

Nota : Le variabili dichiarate all'interno di una funzione sarà funzione di scope per entrambi vare let.

let non consente di ridichiarare le variabili

1. Una variabile dichiarata con varpuò essere nuovamente dichiarata. Per esempio,

 var a = 5; // 5 var a = 3; // 3

Una variabile dichiarata con letnon può essere dichiarata nuovamente all'interno dello stesso blocco o dello stesso ambito. Per esempio,

 let a = 5; let a = 3; // error 

Produzione

 Uncaught SyntaxError: l'identificatore "a" è già stato dichiarato

2. La ridichiarazione di una variabile con varun ambito o un blocco diverso cambia anche il valore della variabile esterna. Per esempio,

 var a = 5; console.log(a); // 5 ( var a = 3; console.log(a); // 3 ) console.log(a); // 3

La ridichiarazione di una variabile con letun ambito o un blocco diverso considera tale variabile come una variabile diversa. E il valore di una variabile esterna non cambia. Per esempio,

 let a = 5; console.log(a); // 5 ( let a = 3; console.log(a); // 3 ) console.log(a); // 5

3. Quando una variabile dichiarata con varviene utilizzata in un ciclo, il valore di quella variabile cambia. Per esempio,

 var a = 2; for(var a = 0; a < 3; a++) ( console.log('hello'); ) console.log(a); // 3

Nel programma precedente, il forciclo dichiara nuovamente la variabile a. Quindi il valore di aviene modificato in 3 alla fine.

Quando una variabile dichiarata con let viene utilizzata in un ciclo, il valore di una variabile non cambia. Per esempio,

 let a = 2; for(let a = 0; a < 3; a++) ( console.log('hello'); ) console.log(a); // 2

Nel programma precedente, forloop tratta la variabile a come una variabile diversa da quella dichiarata sopra. E l'ambito di quella variabile è solo all'interno del forciclo. Quindi il valore della variabile a rimane 2 alla fine.

let Non consente il sollevamento

Le variabili dichiarate con varvengono poste in cima all'ambito del programma. Per esempio,

 console.log(a); var a; // undefined (not an error)

La parola chiave letnon consente il sollevamento. Per esempio,

 console.log(a); let a; // Uncaught ReferenceError: a is not defined

Se vuoi saperne di più sul sollevamento, visita JavaScript Hoisting.

let e var Browser Support

La maggior parte dei browser moderni supporta l'uso di let. Tuttavia, alcuni browser non supportano completamente let.

Per saperne di più, visita JavaScript consentire il supporto del browser.

Nota : in caso di ambito globale, sia vare letsi comporteranno allo stesso modo. Per esempio,

 var a = 5; // 5

La variabile a avrà un ambito globale ed è possibile accedervi ovunque nel programma.

 let a = 5; // 5

La variabile a avrà un ambito globale ed è possibile accedervi ovunque nel programma.

Articoli interessanti...