V tej vadnici boste s pomočjo primerov spoznali razliko med letom in var v JavaScript.
V JavaScript se obe ključni besedi varin letuporabljata za razglasitev spremenljivk.
Ključna letbeseda 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 letin 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, varje 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, letje 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 ifstavka bloka. b bo obseg bloka in do njega je mogoče dostopati samo znotraj ifbloka.
Ko poskusite dostopati do b zunaj ifbloka, pride do napake (kot je prikazano zgoraj v programu).
Opomba : Spremenljivke, ki so deklarirane v funkciji, bodo obsegane za obe varin let.
let ne dovoljuje ponovne razglasitve spremenljivk
1. Spremenljivko, prijavljeno z, varje mogoče ponovno prijaviti . Na primer
var a = 5; // 5 var a = 3; // 3
Spremenljivke, prijavljene z, letni 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 vardrugač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 letv 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 varse 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 forzanka ponovno razglasi spremenljivko a. Zato se vrednost na koncu aspremeni 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 forzanka spremenljivko a obravnava kot drugačno spremenljivko od zgoraj navedene. In obseg te spremenljivke je samo znotraj forzanke. Zato vrednost spremenljivke a na koncu ostane 2 .
naj Ne dovoli dvigovanja
Spremenljivke, prijavljene z, varso postavljene na vrh obsega programa. Na primer
console.log(a); var a; // undefined (not an error)
Ključna beseda letne 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 varin letobnaš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.







