I denne veiledningen vil du lære om forskjellen mellom let og var i JavaScript ved hjelp av eksempler.
I JavaScript brukes både nøkkelordene var
og let
deklarerer variabler.
Den let
ordet ble introdusert i senere versjon av Javascript kjent som ES6 (ES2015) . Og det er den foretrukne måten å erklære variabler på.
JavaScript la Vs var
Her er oversikten over forskjellene mellom let
og var
.
la | var |
---|---|
La oss blokkere. | var er funksjonsomfang. |
let tillater ikke å gjenklare variabler. | var tillater å omdeklarere variabler på nytt. |
Heising forekommer ikke i let. | Heising forekommer i var. |
JavaScript lar Vs var i Local Scope
var er funksjonsomfang
Variabelen deklarert i en funksjon med var
kan brukes hvor som helst i en funksjon. For eksempel,
// 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
I programmet ovenfor blir variabelen a erklært med var
. Variabelen a kan brukes hvor som helst i funksjonen greet
.
La oss blokkere
Variabelen deklarert med let
kan kun nås i en kodeblokk. For eksempel,
// 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();
Produksjon
hallo verden Ikke fanget ReferenceError: b er ikke definert
I det ovennevnte programmet blir variabelen a erklært inne i funksjonen, og den kan nås hvor som helst inne i funksjonen (a blir funksjonsomfang).
Imidlertid er variabelen b erklært inne i if
blokkuttrykket. b blir blokkert og kan bare nås inne i if
blokken.
Derfor når du prøver å få tilgang til b utenfor if
blokken, oppstår det en feil (som vist ovenfor i programmet).
Merk : Variablene deklarert i en funksjon vil være funksjonsomfang for både var
og let
.
la tillater ikke å deklarere variabler på nytt
1. En variabel deklarert med var
kan deklareres på nytt. For eksempel,
var a = 5; // 5 var a = 3; // 3
En variabel deklarert med let
kan ikke deklareres innenfor samme blokk eller samme omfang. For eksempel,
let a = 5; let a = 3; // error
Produksjon
Ufanget syntaksfeil: Identifikator 'a' er allerede erklært
2. Å omdeklarere en variabel med var
et annet omfang eller en annen blokk endrer også verdien på den ytre variabelen. For eksempel,
var a = 5; console.log(a); // 5 ( var a = 3; console.log(a); // 3 ) console.log(a); // 3
Redeklarere en variabel med let
i et annet omfang eller blokk behandler den variabelen som en annen variabel. Og verdien på en variabel utenfor endres ikke. For eksempel,
let a = 5; console.log(a); // 5 ( let a = 3; console.log(a); // 3 ) console.log(a); // 5
3. Når en variabel deklarert med var
brukes i en sløyfe, endres verdien på den variabelen. For eksempel,
var a = 2; for(var a = 0; a < 3; a++) ( console.log('hello'); ) console.log(a); // 3
I det ovennevnte programmet, for
gjengir sløyfen variabelen a. Derfor endres verdien a
til 3 på slutten.
Når en variabel deklarert med let brukes i en sløyfe, endres ikke verdien til en variabel. For eksempel,
let a = 2; for(let a = 0; a < 3; a++) ( console.log('hello'); ) console.log(a); // 2
I programmet ovenfor for
behandler loop variabel a som en annen variabel enn den som er angitt ovenfor. Og omfanget av den variabelen er bare inne i for
løkken. Derfor forblir verdien av variabel a 2 på slutten.
la Tillater ikke heising
Variablene deklarert med var
heises til toppen av programmets omfang. For eksempel,
console.log(a); var a; // undefined (not an error)
Nøkkelordet let
tillater ikke heising. For eksempel,
console.log(a); let a; // Uncaught ReferenceError: a is not defined
Hvis du vil lære mer om heising, kan du gå til JavaScript-heising.
let and var Nettleserstøtte
De fleste moderne lesere støtter bruken av let
. Noen nettlesere støtter imidlertid ikke fullt ut let
.
For å lære mer, besøk JavaScript la nettleserstøtte.
Merk : Ved globale omfang, både var
og let
vil oppføre seg på samme måte. For eksempel,
var a = 5; // 5
Variabelen a vil være globalt og kan nås hvor som helst i programmet.
let a = 5; // 5
Variabelen a vil være globalt og kan nås hvor som helst i programmet.