Šioje pamokoje su pavyzdžių pagalba sužinosite apie „JavaScript“ kėlimą.
„JavaScript“ kėlimas yra toks elgesys, kai funkciją ar kintamąjį galima naudoti prieš deklaruojant. Pavyzdžiui,
// using test before declaring console.log(test); // undefined var test;
Pirmiau nurodyta programa veikia ir išvestis nebus apibrėžta. Pirmiau nurodyta programa elgiasi taip
// using test before declaring var test; console.log(test); // undefined
Kadangi kintamasis testas yra tik deklaruojamas ir neturi vertės, undefined
jam priskiriama vertė.
Jei norite sužinoti daugiau apie kintamuosius, apsilankykite „JavaScript“ kintamieji.
Pastaba : Nors atrodo, kad deklaracija programoje pajudėjo į viršų, iš tikrųjų vyksta tai, kad funkcija ir kintamosios deklaracijos įtraukiamos į atmintį kompiliavimo etape.
Kintamas kėlimas
Kalbant apie kintamųjų ir konstantų, raktažodžių var
yra iškelta ir let
ir const
neleidžia kėlimą.
Pavyzdžiui,
// program to display value a = 5; console.log(a); var a; // 5
Ankstesniame pavyzdyje kintamasis a naudojamas prieš jį deklaruojant. Ir programa veikia ir rodo 5 išvestį. Programa elgiasi taip:
// program to display value var a; a = 5; console.log(a); // 5
Tačiau naudojant „JavaScript“ inicialai nėra panaikinami. Pavyzdžiui,
// program to display value console.log(a); var a = 5;
Rezultatas
neapibrėžtas
Pirmiau nurodyta programa veikia taip:
var a; console.log(a); a = 5;
Kompiliavimo etape į atmintį perkeliama tik deklaracija. Vadinasi, kintamojo a reikšmė yra ta, undefined
kad a atspausdinama neinicijuojant.
Be to, kai kintamasis naudojamas funkcijos viduje, kintamasis pakeliamas tik į funkcijos viršų. Pavyzdžiui,
// program to display value var a = 4; function greet() ( b = 'hello'; console.log(b); // hello var b; ) greet(); // hello console.log(b);
Rezultatas
labas Nepagauta nuorodos klaida: b nėra apibrėžta
Ankstesniame pavyzdyje kintamasis b pakeliamas į funkcijos viršų greet
ir tampa vietiniu kintamuoju. Taigi b yra prieinamas tik funkcijos viduje. b netampa visuotiniu kintamuoju.
Norėdami sužinoti daugiau apie vietinius ir pasaulinius kintamuosius, apsilankykite „JavaScript“ kintamųjų apimtis.
Pastaba : kėlimo atveju kintamojo deklaracija prieinama tik tiesiogiai.
Jei su let
raktiniu žodžiu naudojamas kintamasis , šis kintamasis nėra pakeliamas. Pavyzdžiui,
// program to display value a = 5; console.log(a); let a; // error
Rezultatas
Negauta „ReferenceError“: prieš inicijuojant negalima pasiekti „a“
Naudojant let
, pirmiausia reikia nurodyti kintamąjį.
Funkcijos kėlimas
Funkciją galima iškviesti prieš ją deklaruojant. Pavyzdžiui,
// program to print the text greet(); function greet() ( console.log('Hi, there.'); )
Rezultatas
Sveiki
Pirmiau pateiktoje programoje funkcija greet
iškviečiama prieš ją deklaruojant ir programa rodo išvestį. Taip yra dėl kėlimo.
Tačiau kai funkcija naudojama kaip išraiška , įvyksta klaida, nes keliamos tik deklaracijos. Pavyzdžiui;
// program to print the text greet(); let greet = function() ( console.log('Hi, there.'); )
Rezultatas
Negauta „ReferenceError“: sveikinimas nėra apibrėžtas
Jei var
buvo naudojama pirmiau minėtoje programoje, klaida būtų:
Negauta „TypeError“: sveikinimas nėra funkcija
Pastaba : paprastai kėlimas neatliekamas kitomis programavimo kalbomis, tokiomis kaip Python, C, C ++, Java.
Kėlimas gali sukelti nepageidaujamų rezultatų jūsų programoje. Geriausia pirmiausia deklaruoti kintamuosius ir funkcijas prieš juos naudojant ir vengti kėlimo.
Kintamųjų atveju geriau naudoti let
nei var
.