Ebben az oktatóanyagban példák segítségével megismerheti a let és a var közötti különbséget a JavaScript-ben.
A JavaScript, a kulcsszavak var
és let
használják kijelentik változókat.
A let
kulcsszót a JavaScript későbbi verziójában, ES6 néven (ES2015) vezették be . És ez a változók deklarálásának preferált módja.
A JavaScript segítségével a Vs var
Itt található a let
és közötti különbségek áttekintése var
.
hadd | var |
---|---|
let blokkolt. | var a függvény hatóköre. |
a let nem teszi lehetővé a változók újrabejelentését. | a var lehetővé teszi a változók újrabejelentését. |
Az emelés nem bérletben történik. | Az emelés var. |
A JavaScript lehetővé tette, hogy a Vs változik a Helyi hatókörben
var a függvény hatóköre
A függvény belsejében deklarált változó a függvényen var
belül bárhol használható. Például,
// 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
A fenti programban az a változót deklaráljuk var
. Az a változó a függvényen belül bárhol használható greet
.
let blokkolt
A változóval deklarált változó let
csak kódblokkon belül érhető el. Például,
// 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();
Kimenet
hello world Elfogatlan ReferenceError: b nincs meghatározva
A fenti programban az a változó deklarálásra kerül a függvény belsejében, és a függvényen belül bárhol elérhető (az a függvény hatóköre lesz).
A b változót azonban a if
blokk utasításban deklarálják . b blokk hatókörű lesz, és csak a if
blokkon belül érhető el.
Ezért amikor if
blokkon kívül megpróbálja elérni a b-t , hiba lép fel (amint azt a program fentebb mutatja).
Megjegyzés : A deklarált változók egy függvényen belül lesz funkció távcsöves engedély var
és let
.
A let nem engedélyezi a változók újrabejelentését
1. A -vel deklarált változó var
újra deklarálható. Például,
var a = 5; // 5 var a = 3; // 3
A változóval deklarált változó let
nem deklarálható újra ugyanazon blokkban vagy ugyanazon hatókörben. Például,
let a = 5; let a = 3; // error
Kimenet
El nem fogott SyntaxError: Az „a” azonosítót már deklaráltuk
2. Egy változó var
más tartományban vagy blokkban történő átdeklarálása megváltoztatja a külső változó értékét is. Például,
var a = 5; console.log(a); // 5 ( var a = 3; console.log(a); // 3 ) console.log(a); // 3
Ha egy változót let
más hatókörben vagy blokkban adunk át, akkor ezt a változót más változóként kezeljük . És a változó értéke kívül nem változik. Például,
let a = 5; console.log(a); // 5 ( let a = 3; console.log(a); // 3 ) console.log(a); // 5
3. Ha egy var
ciklusban deklarált változót használunk, akkor a változó értéke megváltozik. Például,
var a = 2; for(var a = 0; a < 3; a++) ( console.log('hello'); ) console.log(a); // 3
A fenti programban a for
hurok újra kijelenti az a változót. Ezért a végén 3 értékre a
változik .
Amikor egy let- vel deklarált változót hurokban használunk, akkor a változó értéke nem változik. Például,
let a = 2; for(let a = 0; a < 3; a++) ( console.log('hello'); ) console.log(a); // 2
A fenti programban a for
loop az a változót más változóként kezeli, mint a fent deklarált. És ennek a változónak a hatóköre csak a for
hurokban van. Ezért az a változó értéke 2 marad a végén.
hadd nem engedi az emelést
A -vel deklarált változókat var
a program terjedelmének tetejére emeljük. Például,
console.log(a); var a; // undefined (not an error)
A kulcsszó let
nem teszi lehetővé az emelést. Például,
console.log(a); let a; // Uncaught ReferenceError: a is not defined
Ha többet szeretne megtudni az emelésről, látogasson el a JavaScript-emelés oldalra.
let és var Böngésző támogatás
A legtöbb modern böngésző támogatja a let
. Egyes böngészők azonban nem támogatják teljes mértékben let
.
További információért látogasson el a JavaScript let böngésző támogatására.
Megjegyzés : Abban az esetben, globális hatókörű, mind var
és let
viselkedik ugyanúgy. Például,
var a = 5; // 5
Az a változó globális hatókörű lesz, és a program bárhol elérhető.
let a = 5; // 5
Az a változó globális hatókörű lesz, és a program bárhol elérhető.