JavaScript laat Vs var (met voorbeelden)

In deze tutorial leer je aan de hand van voorbeelden wat het verschil is tussen let en var in JavaScript.

In JavaScript worden zowel de trefwoorden varals letgebruikt om variabelen te declareren.

Het letsleutelwoord is geïntroduceerd in de latere versie van JavaScript, bekend als ES6 (ES2015) . En het is de beste manier om variabelen te declareren.

JavaScript laat Vs var

Hier is het overzicht van de verschillen tussen leten var.

laat var
let is block-scoped. var is functiebereik.
let staat niet toe om variabelen opnieuw te declareren. var maakt het mogelijk om variabelen opnieuw te declareren.
Hijsen gebeurt niet in de verhuur. Hijsen vindt plaats in var.

JavaScript laat Vs var in Local Scope

var is functiebereik

De variabele die binnen een functie wordt gedeclareerd, varkan overal binnen een functie worden gebruikt. Bijvoorbeeld,

 // 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

In het bovenstaande programma wordt de variabele a gedeclareerd met var. De variabele a kan overal in de functie worden gebruikt greet.

let is block-scoped

De variabele die is gedeclareerd met letis alleen toegankelijk binnen een codeblok. Bijvoorbeeld,

 // 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();

Uitvoer

 hallo wereld Uncaught ReferenceError: b is niet gedefinieerd

In het bovenstaande programma wordt de variabele a binnen de functie gedeclareerd en is deze overal binnen de functie toegankelijk (a wordt functiebereik).

De variabele b wordt echter gedeclareerd in de ifblokinstructie. b heeft een block-scoped en is alleen toegankelijk binnen het ifblok.

Daarom iftreedt er een fout op wanneer u probeert toegang te krijgen tot b buiten het blok (zoals hierboven in het programma wordt getoond).

Opmerking : de variabelen die binnen een functie zijn gedeclareerd, hebben een functiebereik voor zowel varen let.

laat het niet toestaan ​​om variabelen opnieuw te declareren

1. Een variabele die is gedeclareerd met, varkan opnieuw worden gedeclareerd . Bijvoorbeeld,

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

Een variabele gedeclareerd met letkan niet opnieuw worden gedeclareerd binnen hetzelfde blok of hetzelfde bereik. Bijvoorbeeld,

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

Uitvoer

 Uncaught SyntaxError: Identifier 'a' is al gedeclareerd

2. Het opnieuw declareren van een variabele met vareen ander bereik of blok verandert ook de waarde van de buitenste variabele. Bijvoorbeeld,

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

Het opnieuw declareren van een variabele met leteen ander bereik of blok behandelt die variabele als een andere variabele. En de waarde van een variabele buiten verandert niet. Bijvoorbeeld,

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

3. Als een variabele die varis gedeclareerd met wordt gebruikt in een lus, verandert de waarde van die variabele. Bijvoorbeeld,

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

In het bovenstaande programma verklaart de forlus de variabele a opnieuw. Daarom wordt de waarde van aan het einde agewijzigd in 3 .

Als een variabele gedeclareerd met let wordt gebruikt in een lus, verandert de waarde van een variabele niet. Bijvoorbeeld,

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

In het bovenstaande programma forbehandelt lus variabele a als een andere variabele dan degene die hierboven is gedeclareerd. En het bereik van die variabele is alleen binnen de forlus. Vandaar de waarde van variabele a steeds 2 aan het einde.

laat hijsen niet toestaan

De variabelen gedeclareerd met varworden naar de top van de scope van het programma gehesen. Bijvoorbeeld,

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

Het sleutelwoord letstaat hijsen niet toe. Bijvoorbeeld,

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

Als je meer wilt weten over hijsen, ga dan naar JavaScript Hoisting.

let en var Browserondersteuning

De meeste moderne browsers ondersteunen het gebruik van let. Sommige browsers ondersteunen echter niet volledig let.

Ga voor meer informatie naar JavaScript voor ondersteuning van de browser.

Opmerking : in het geval van een globaal bereik gedragen varen beide letzich op dezelfde manier. Bijvoorbeeld,

 var a = 5; // 5

De variabele a heeft een globaal bereik en is overal in het programma toegankelijk.

 let a = 5; // 5

De variabele a heeft een globaal bereik en is overal in het programma toegankelijk.

Interessante artikelen...