V tej vadnici boste s pomočjo primerov spoznali razliko med letom in var v JavaScript.
V JavaScript se obe ključni besedi var
in let
uporabljata za razglasitev spremenljivk.
Ključna let
beseda je bila predstavljena v poznejši različici JavaScripta, znanem kot ES6 (ES2015) . In to je najboljši način za razglasitev spremenljivk.
JavaScript naj Vs var
Tu je pregled razlik med let
in var
.
pustiti | var |
---|---|
let je v blokovnem obsegu. | var je obseg funkcije. |
let ne dovoljuje ponovne razglasitve spremenljivk. | var omogoča ponovno razglasitev spremenljivk. |
Dvigovanje se ne zgodi v let. | Dvigovanje se zgodi v var. |
JavaScript dovoli Vs var v Local Scope
var je obseg funkcije
Spremenljivko, deklarirano znotraj funkcije s, var
je mogoče uporabiti kjer koli znotraj funkcije. Na primer
// 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
V zgornjem programu je spremenljivka a deklarirana z var
. Spremenljivko a lahko uporabite kjer koli znotraj funkcije greet
.
let je v blokovnem obsegu
Do spremenljivke, prijavljene z, let
je mogoče dostopati samo znotraj bloka kode. Na primer
// 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();
Izhod
hello world Uncaught ReferenceError: b ni definiran
V zgornjem programu je spremenljivka a deklarirana znotraj funkcije in do nje je mogoče dostopati kjer koli znotraj funkcije (a postane obseg funkcije).
Vendar je spremenljivka b deklarirana znotraj if
stavka bloka. b bo obseg bloka in do njega je mogoče dostopati samo znotraj if
bloka.
Ko poskusite dostopati do b zunaj if
bloka, pride do napake (kot je prikazano zgoraj v programu).
Opomba : Spremenljivke, ki so deklarirane v funkciji, bodo obsegane za obe var
in let
.
let ne dovoljuje ponovne razglasitve spremenljivk
1. Spremenljivko, prijavljeno z, var
je mogoče ponovno prijaviti . Na primer
var a = 5; // 5 var a = 3; // 3
Spremenljivke, prijavljene z, let
ni mogoče ponovno prijaviti v istem bloku ali istem obsegu. Na primer
let a = 5; let a = 3; // error
Izhod
Uncaught SyntaxError: identifikator 'a' je že razglašen
2. Ponovna razglasitev spremenljivke z var
drugačnim obsegom ali blokom spremeni tudi vrednost zunanje spremenljivke. Na primer
var a = 5; console.log(a); // 5 ( var a = 3; console.log(a); // 3 ) console.log(a); // 3
Ponovna razglasitev spremenljivke let
v drugem obsegu ali bloku obravnava to spremenljivko kot drugo spremenljivko. In vrednost spremenljivke zunaj se ne spremeni. Na primer
let a = 5; console.log(a); // 5 ( let a = 3; console.log(a); // 3 ) console.log(a); // 5
3. Ko var
se v zanki uporablja spremenljivka, deklarirana z , se vrednost spremenljivke spremeni. Na primer
var a = 2; for(var a = 0; a < 3; a++) ( console.log('hello'); ) console.log(a); // 3
V zgornjem programu for
zanka ponovno razglasi spremenljivko a. Zato se vrednost na koncu a
spremeni v 3 .
Ko spremenljivka razglašena z pustiti se uporablja v zanki, vrednost spremenljivke ne spremeni. Na primer
let a = 2; for(let a = 0; a < 3; a++) ( console.log('hello'); ) console.log(a); // 2
V zgornjem programu for
zanka spremenljivko a obravnava kot drugačno spremenljivko od zgoraj navedene. In obseg te spremenljivke je samo znotraj for
zanke. Zato vrednost spremenljivke a na koncu ostane 2 .
naj Ne dovoli dvigovanja
Spremenljivke, prijavljene z, var
so postavljene na vrh obsega programa. Na primer
console.log(a); var a; // undefined (not an error)
Ključna beseda let
ne dovoljuje dvigovanja. Na primer
console.log(a); let a; // Uncaught ReferenceError: a is not defined
Če želite izvedeti več o dvigovanju, obiščite JavaScript Hosting.
let in var Podpora za brskalnik
Večina sodobnih brskalnikov podpira uporabo brskalnika let
. Vendar nekateri brskalniki ne podpirajo popolnoma let
.
Če želite izvedeti več, obiščite JavaScript, naj podpira brskalnik.
Opomba : V primeru globalnega obsega se bosta oba var
in let
obnašala enako. Na primer
var a = 5; // 5
Spremenljivka a bo globalnega obsega in do nje bo mogoče dostopati kjer koli v programu.
let a = 5; // 5
Spremenljivka a bo globalnega obsega in do nje bo mogoče dostopati kjer koli v programu.