În acest tutorial, veți afla despre diferența dintre let și var în JavaScript cu ajutorul exemplelor.
În JavaScript, atât cuvintele cheie, cât var
și let
sunt utilizate pentru a declara variabile.
Cuvântul let
cheie a fost introdus în versiunea ulterioară a JavaScript cunoscută sub numele de ES6 (ES2015) . Și este modalitatea preferată de a declara variabile.
JavaScript permite Vs var
Iată prezentarea generală a diferențelor dintre let
și var
.
lăsa | var |
---|---|
let are un domeniu de bloc. | var este în funcție de domeniu. |
let nu permite redeclararea variabilelor. | var permite redeclararea variabilelor. |
Ridicarea nu are loc în let. | Ridicarea are loc în var. |
JavaScript permite Vs var în domeniul de aplicare local
var este în funcție de domeniu
Variabila declarată în interiorul unei funcții cu var
poate fi utilizată oriunde în cadrul unei funcții. De exemplu,
// 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
În programul de mai sus, variabila a este declarată cu var
. Variabila a poate fi utilizată oriunde în interiorul funcției greet
.
let are un domeniu de bloc
Variabila declarată cu let
poate fi accesată numai într-un bloc de cod. De exemplu,
// 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();
Ieșire
hello world Uncaught ReferenceError: b nu este definit
În programul de mai sus, variabila a este declarată în interiorul funcției și poate fi accesată oriunde în interiorul funcției (a devine funcție cu scop).
Cu toate acestea, variabila b este declarată în cadrul if
instrucțiunii bloc. b va fi bloc-scop și poate fi accesat numai în interiorul if
blocului.
Prin urmare, atunci când încercați să accesați b în afara if
blocului, apare o eroare (așa cum se arată mai sus în program).
Notă : Variabilele declarate în interiorul unei funcții vor fi incluse în ambele funcții var
și let
.
let nu permite redeclararea variabilelor
1. O variabilă declarată cu var
poate fi redeclarată din nou. De exemplu,
var a = 5; // 5 var a = 3; // 3
O variabilă declarată cu let
nu poate fi redeclarată în același bloc sau același domeniu. De exemplu,
let a = 5; let a = 3; // error
Ieșire
Uncaught SyntaxError: identificatorul „a” a fost deja declarat
2. Redeclararea unei variabile cu var
un domeniu sau un bloc diferit modifică și valoarea variabilei externe. De exemplu,
var a = 5; console.log(a); // 5 ( var a = 3; console.log(a); // 3 ) console.log(a); // 3
Redeclararea unei variabile cu let
un domeniu sau un bloc diferit tratează acea variabilă ca o variabilă diferită. Și valoarea unei variabile din exterior nu se schimbă. De exemplu,
let a = 5; console.log(a); // 5 ( let a = 3; console.log(a); // 3 ) console.log(a); // 5
3. Când o variabilă declarată cu var
este utilizată într-o buclă, valoarea acelei variabile se schimbă. De exemplu,
var a = 2; for(var a = 0; a < 3; a++) ( console.log('hello'); ) console.log(a); // 3
În programul de mai sus, for
bucla redeclarează variabila a. Prin urmare, valoarea lui a
este modificată la 3 la sfârșit.
Când o variabilă declarată cu let este utilizată într-o buclă, valoarea unei variabile nu se modifică. De exemplu,
let a = 2; for(let a = 0; a < 3; a++) ( console.log('hello'); ) console.log(a); // 2
În programul de mai sus, for
bucla tratează variabila a ca o variabilă diferită de cea declarată mai sus. Și scopul acestei variabile este doar în interiorul for
buclei. Prin urmare, valoarea variabilei a rămâne 2 la sfârșit.
să nu permită ridicarea
Variabilele declarate cu var
sunt ridicate în partea de sus a scopului programului. De exemplu,
console.log(a); var a; // undefined (not an error)
Cuvântul cheie let
nu permite ridicarea. De exemplu,
console.log(a); let a; // Uncaught ReferenceError: a is not defined
Dacă doriți să aflați mai multe despre ridicare, accesați JavaScript Hoisting.
let și var Asistență pentru browser
Majoritatea browserelor moderne acceptă utilizarea let
. Cu toate acestea, unele browsere nu acceptă pe deplin let
.
Pentru a afla mai multe, vizitați JavaScript pentru a permite suportul browserului.
Notă : În cazul unei sfere globale, ambele var
și let
se vor comporta în același mod. De exemplu,
var a = 5; // 5
Variabila a va avea scop global și poate fi accesată oriunde în program.
let a = 5; // 5
Variabila a va avea scop global și poate fi accesată oriunde în program.