Šajā apmācībā jūs uzzināsit par atšķirību starp let un var JavaScript, izmantojot piemērus.
JavaScript gan atslēgvārdi, var
gan let
tiek izmantoti mainīgo deklarēšanai.
let
Atslēgvārds tika ieviesta vēlāk versijā JavaScript pazīstams kā ES6 (ES2015) . Un tas ir vēlamais mainīgo deklarēšanas veids.
JavaScript ļauj Vs var
Šeit ir pārskats par atšķirībām starp let
un var
.
ļaut | var |
---|---|
let ir bloķēts. | var ir funkcija. |
let neļauj atkārtoti deklarēt mainīgos. | var ļauj atkārtoti deklarēt mainīgos. |
Pacelšana nenotiek nomā. | Pacelšana notiek var. |
JavaScript ļāva Vs mainīties lokālajā jomā
var ir funkcija
Mainīgo, kas deklarēts funkcijas iekšpusē, var
var izmantot jebkur funkcijas ietvaros. Piemēram,
// 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
Iepriekš minētajā programmā mainīgais a tiek deklarēts ar var
. Mainīgo a var izmantot jebkur funkcijas iekšpusē greet
.
let ir bloķēts
Mainīgajam mainīgajam let
var piekļūt tikai koda blokā. Piemēram,
// 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();
Rezultāts
sveika pasaule Nepieķerts ReferenceError: b nav definēts
Iepriekš minētajā programmā mainīgais a tiek deklarēts funkcijas iekšienē, un tam var piekļūt jebkur funkcijas iekšpusē (a kļūst par funkciju darbības jomu).
Tomēr mainīgais b tiek deklarēts if
bloka priekšrakstā. b būs bloķēts un tam var piekļūt tikai if
bloka iekšpusē .
Tādējādi, mēģinot piekļūt b ārpus if
bloka, rodas kļūda (kā parādīts iepriekš programmā).
Piezīme : Funkcijas ietvaros deklarētie mainīgie tiks aptverti gan abiem, var
gan let
.
let neļauj atkārtoti deklarēt mainīgos
1. Ar mainīgo mainīgo var
var atkārtoti deklarēt . Piemēram,
var a = 5; // 5 var a = 3; // 3
Mainīgo, kas deklarēts ar, let
nevar atkārtoti deklarēt tajā pašā blokā vai tajā pašā darbības jomā. Piemēram,
let a = 5; let a = 3; // error
Rezultāts
Nenotverta sintakses kļūda: identifikators “a” jau ir deklarēts
2. Mainot mainīgo ar var
citu darbības jomu vai bloku, tiek mainīta arī ārējā mainīgā vērtība. Piemēram,
var a = 5; console.log(a); // 5 ( var a = 3; console.log(a); // 3 ) console.log(a); // 3
Mainot mainīgo ar let
citu darbības jomu vai bloku, šis mainīgais tiek uzskatīts par atšķirīgu mainīgo. Un mainīgā vērtība ārpusē nemainās. Piemēram,
let a = 5; console.log(a); // 5 ( let a = 3; console.log(a); // 3 ) console.log(a); // 5
3. Kad var
ciklā tiek izmantots mainīgais mainīgais, mainīgā vērtība mainās. Piemēram,
var a = 2; for(var a = 0; a < 3; a++) ( console.log('hello'); ) console.log(a); // 3
Iepriekš minētajā programmā for
cilpa atkārtoti deklarē mainīgo a. Tādējādi beigās vērtība a
tiek mainīta uz 3 .
Ja ciklā tiek izmantots mainīgais, kas deklarēts ar let , mainīgā vērtība nemainās. Piemēram,
let a = 2; for(let a = 0; a < 3; a++) ( console.log('hello'); ) console.log(a); // 2
Iepriekš minētajā programmā for
cikls mainīgo a uzskata par atšķirīgu mainīgo, nevis iepriekš deklarēto. Un šī mainīgā darbības joma ir tikai for
cilpas iekšpusē . Tādējādi mainīgā a vērtība beigās paliek 2 .
ļaujiet neļauj pacelt
Mainīgie, kas deklarēti ar, var
tiek pacelti programmas darbības augšdaļā. Piemēram,
console.log(a); var a; // undefined (not an error)
Atslēgvārds let
neļauj pacelt. Piemēram,
console.log(a); let a; // Uncaught ReferenceError: a is not defined
Ja vēlaties uzzināt vairāk par pacelšanu, apmeklējiet JavaScript pacelšanu.
let un var Pārlūkprogrammas atbalsts
Lielākā daļa mūsdienu pārlūkprogrammu atbalsta let
. Tomēr dažas pārlūkprogrammas pilnībā neatbalsta let
.
Lai uzzinātu vairāk, apmeklējiet JavaScript let pārlūkprogrammas atbalstu.
Piezīme . Globāla mēroga gadījumā abi var
un let
izturēsies vienādi. Piemēram,
var a = 5; // 5
Mainīgais a būs globāla mēroga, un tam var piekļūt jebkurā programmas vietā.
let a = 5; // 5
Mainīgais a būs globāla mēroga, un tam var piekļūt jebkurā programmas vietā.