Šioje pamokoje, naudodamiesi pavyzdžiais, sužinosite apie „JavaScript“ ir „var“ skirtumus.
„JavaScript“ kintamiesiems deklaruoti naudojami var
ir raktiniai žodžiai, ir let
jie.
let
Raktažodis buvo įvesta vėlesnės versijos JavaScript žinomas kaip ES6 (ES2015) . Ir tai yra geriausias būdas deklaruoti kintamuosius.
„JavaScript“ leido Vs var
Čia pateikiama skirtumų tarp let
ir apžvalga var
.
leisti | var |
---|---|
tegul yra blokuojamas. | var yra funkcija. |
let neleidžia iš naujo paskelbti kintamųjų. | var leidžia iš naujo paskelbti kintamuosius. |
Kėlimas nevyksta. | Kėlimas vyksta var. |
„JavaScript“ leido „Vs“ pakeisti „Local Scope“
var yra funkcija
Kintamasis, deklaruojamas funkcijos viduje, var
gali būti naudojamas bet kurioje funkcijos vietoje. Pavyzdžiui,
// 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
Pirmiau pateiktoje programoje kintamasis a yra deklaruojamas var
. Kintamasis a gali būti naudojamas bet kurioje funkcijos vietoje greet
.
tegul yra blokuojamas
Su kintamuoju, deklaruojamu, let
galima pasiekti tik kodo bloke. Pavyzdžiui,
// 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();
Rezultatas
labas pasaulis Nepagauta nuorodos klaida: b nėra apibrėžta
Pirmiau pateiktoje programoje kintamasis a yra deklaruojamas funkcijos viduje ir prie jo galima prisijungti bet kur funkcijos viduje (a tampa funkcija apimama).
Tačiau kintamasis b yra deklaruojamas if
bloko sakinyje. b bus blokuojamas ir bus pasiekiamas tik if
bloko viduje .
Taigi, kai bandote pasiekti b už if
bloko ribų, įvyksta klaida (kaip parodyta aukščiau programoje).
Pastaba : kintamieji, deklaruoti funkcijos viduje, bus taikomi abiem var
ir let
.
tegul neleidžia iš naujo paskelbti kintamųjų
1. Su kintamuoju galima deklaruoti var
dar kartą. Pavyzdžiui,
var a = 5; // 5 var a = 3; // 3
Kintamojo, deklaruoto su, let
negalima pakartotinai paskelbti tame pačiame bloke ar toje pačioje sferoje. Pavyzdžiui,
let a = 5; let a = 3; // error
Rezultatas
Nepagauta sintaksės klaida: identifikatorius „a“ jau paskelbtas
2. Deklaravus kintamąjį var
, kurio sritis ar blokas yra kitoks, keičiasi ir išorinio kintamojo vertė. Pavyzdžiui,
var a = 5; console.log(a); // 5 ( var a = 3; console.log(a); // 3 ) console.log(a); // 3
Iš naujo paskelbus kintamąjį su let
kita sritimi ar bloku, šis kintamasis traktuojamas kaip kitas kintamasis. O kintamojo vertė išorėje nesikeičia. Pavyzdžiui,
let a = 5; console.log(a); // 5 ( let a = 3; console.log(a); // 3 ) console.log(a); // 5
3. Kai var
cikle naudojamas kintamasis, deklaruotas su , kintamojo vertė pasikeičia. Pavyzdžiui,
var a = 2; for(var a = 0; a < 3; a++) ( console.log('hello'); ) console.log(a); // 3
Pirmiau pateiktoje programoje for
kilpa pakartotinai paskelbia kintamąjį a. Taigi pabaigoje vertė a
yra pakeista į 3 .
Kai cikle naudojamas kintamasis, deklaruojamas su let , kintamojo vertė nesikeičia. Pavyzdžiui,
let a = 2; for(let a = 0; a < 3; a++) ( console.log('hello'); ) console.log(a); // 2
Pirmiau pateiktoje programoje for
ciklas a kintamąjį traktuoja kaip kitokį nei deklaruotas aukščiau. To kintamojo taikymo sritis yra tik for
ciklo viduje . Taigi kintamojo a vertė pabaigoje lieka 2 .
tegul neleidžia kelti
Kintamieji, deklaruoti naudojant, var
yra iškeliami į programos srities viršų. Pavyzdžiui,
console.log(a); var a; // undefined (not an error)
Raktinis žodis let
neleidžia pakelti. Pavyzdžiui,
console.log(a); let a; // Uncaught ReferenceError: a is not defined
Jei norite sužinoti daugiau apie kėlimą, apsilankykite „JavaScript“ kėlimas.
„Let and var“ naršyklės palaikymas
Dauguma šiuolaikinių naršyklių palaiko let
. Tačiau kai kurios naršyklės nevisiškai palaiko let
.
Norėdami sužinoti daugiau, apsilankykite „JavaScript“ leiskite naršyklės palaikymui.
Pastaba : Esant pasaulinio masto, tiek var
ir let
elgsis taip pat. Pavyzdžiui,
var a = 5; // 5
Kintamasis a bus pasaulinio masto ir prieinamas bet kurioje programos vietoje.
let a = 5; // 5
Kintamasis a bus pasaulinio masto ir prieinamas bet kurioje programos vietoje.