I denne vejledning lærer du om forskellen mellem let og var i JavaScript ved hjælp af eksempler.
I JavaScript bruges både nøgleordene var
og let
deklarerer variabler.
Den let
søgeord blev indført i den nyere version af JavaScript kendt som ES6 (ES2015) . Og det er den foretrukne måde at erklære variabler på.
JavaScript lad Vs var
Her er oversigten over forskellene mellem let
og var
.
lade | var |
---|---|
Lad os blokere. | var er funktionsomfang. |
let tillader ikke at gendeklarere variabler. | var gør det muligt at deklarere variabler igen. |
Hejsning forekommer ikke i let. | Hejsning forekommer i var. |
JavaScript tillader Vs var i Local Scope
var er funktionsomfang
Variablen deklareret inde i en funktion med var
kan bruges hvor som helst inden for en funktion. 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 ovenstående program erklæres variablen a med var
. Variablen a kan bruges hvor som helst inde i funktionen greet
.
Lad os blokere
Variablen deklareret med let
kan kun fås i en blok kode. 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();
Produktion
hej verden Ikke fanget ReferenceError: b er ikke defineret
I ovenstående program erklæres variablen a inde i funktionen, og den kan tilgås hvor som helst inde i funktionen (a bliver funktionsomfang).
Imidlertid erklæres variablen b inde i if
blokerklæringen. b vil være blokomfanget og kan kun tilgås inde i if
blokken.
Derfor, når du prøver at få adgang til b uden for if
blokken, opstår der en fejl (som vist ovenfor i programmet).
Bemærk : De variabler, der er angivet i en funktion, funktionsomfang for både var
og let
.
lad tillader ikke at gendeklarere variabler
1. En variabel, der er deklareret med, var
kan deklareres igen. For eksempel,
var a = 5; // 5 var a = 3; // 3
En variabel, der er erklæret med, let
kan ikke deklareres inden for samme blok eller samme omfang. For eksempel,
let a = 5; let a = 3; // error
Produktion
Ikke fanget syntaksfejl: Identifikator 'a' er allerede blevet erklæret
2. Omdeklarering af en variabel med var
et andet omfang eller en anden blok ændrer også værdien af den ydre variabel. For eksempel,
var a = 5; console.log(a); // 5 ( var a = 3; console.log(a); // 3 ) console.log(a); // 3
Omdeklarering af en variabel med let
i et andet omfang eller blok behandler den variabel som en anden variabel. Og værdien af en variabel udenfor ændres 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, der er deklareret med var
, bruges i en løkke, ændres værdien af den variabel. For eksempel,
var a = 2; for(var a = 0; a < 3; a++) ( console.log('hello'); ) console.log(a); // 3
I ovennævnte program for
erklærer løkken om variablen a. Derfor ændres værdien af a
til 3 i slutningen.
Når en variabel, der er deklareret med let , bruges i en sløjfe, ændres værdien af en variabel ikke. For eksempel,
let a = 2; for(let a = 0; a < 3; a++) ( console.log('hello'); ) console.log(a); // 2
I ovenstående program for
behandler loop variabel a som en anden variabel end den ovenfor angivne. Og omfanget af denne variabel er kun inde i for
sløjfen. Derfor forbliver værdien af variabel a 2 ved slutningen.
lad Tillader ikke hejsning
Variablerne deklareret med var
hejses til toppen af programmets anvendelsesområde. For eksempel,
console.log(a); var a; // undefined (not an error)
Nøgleordet let
tillader ikke hejsning. For eksempel,
console.log(a); let a; // Uncaught ReferenceError: a is not defined
Hvis du vil lære mere om hejsning, skal du besøge JavaScript-hejsning.
let og var Browsersupport
De fleste af de moderne browsere understøtter brugen af let
. Nogle browsere understøtter dog ikke fuldt ud let
.
Hvis du vil vide mere, skal du besøge JavaScript, lad browsersupport.
Bemærk : I tilfælde af global rækkevidde, både var
og let
vil opføre sig på samme måde. For eksempel,
var a = 5; // 5
Variablen a vil være global omfang og kan tilgås hvor som helst i programmet.
let a = 5; // 5
Variablen a vil være global omfang og kan tilgås hvor som helst i programmet.