Dvigovanje JavaScript (s primeri)

V tej vadnici boste s pomočjo primerov spoznali dvigovanje JavaScript.

Dvigovanje v JavaScript je vedenje, pri katerem je pred deklaracijo mogoče uporabiti funkcijo ali spremenljivko. Na primer

 // using test before declaring console.log(test); // undefined var test;

Zgornji program deluje in rezultat ne bo opredeljen. Zgornji program se obnaša kot

 // using test before declaring var test; console.log(test); // undefined

Ker je spremenljivka test samo deklarirana in nima vrednosti, undefinedji je dodeljena vrednost.

Če želite izvedeti več o spremenljivkah, obiščite spremenljivke JavaScript.

Opomba : Čeprav se zdi, da se je deklaracija v programu dvignila, se dejansko zgodi, da se deklaracije funkcije in spremenljivke dodajo v pomnilnik med fazo prevajanja.

Variabilno dvigovanje

V smislu spremenljivk in konstant, ključna beseda varje dvignjen in letin constne omogoča dvigovanje.

Na primer

 // program to display value a = 5; console.log(a); var a; // 5

V zgornjem primeru je spremenljivka a uporabljena, preden jo prijavimo. In program deluje in prikaže izhod 5. Program se obnaša kot:

 // program to display value var a; a = 5; console.log(a); // 5

Vendar se v JavaScript inicializacije ne dvignejo. Na primer

 // program to display value console.log(a); var a = 5;

Izhod

 nedoločeno

Zgornji program se obnaša kot:

 var a; console.log(a); a = 5;

V fazi prevajanja se v pomnilnik premakne samo izjava. Zato je vrednost spremenljivke a, undefinedker je a natisnjena, ne da bi jo inicializirala.

Ko je spremenljivka uporabljena znotraj funkcije, je spremenljivka dvignjena samo na vrh funkcije. Na primer

 // program to display value var a = 4; function greet() ( b = 'hello'; console.log(b); // hello var b; ) greet(); // hello console.log(b);

Izhod

 pozdravljeni Uncaught ReferenceError: b ni definiran

V zgornjem primeru je spremenljivka b postavljena na vrh funkcije greetin postane lokalna spremenljivka. Zato je b dostopen samo znotraj funkcije. b ne postane globalna spremenljivka.

Če želite izvedeti več o lokalnih in globalnih spremenljivkah, obiščite JavaScript Variable Scope.

Opomba : Pri dvigovanju je deklaracija spremenljivke dostopna samo neposrednemu obsegu.

Če je spremenljivka uporabljena s letključno besedo, ta spremenljivka ni dvignjena. Na primer

 // program to display value a = 5; console.log(a); let a; // error

Izhod

 Uncaught ReferenceError: pred inicializacijo ni mogoče dostopati do 'a'

Med uporabo letje treba najprej prijaviti spremenljivko.

Funkcija dvigovanja

Funkcijo lahko pokličete, preden jo prijavite. Na primer

 // program to print the text greet(); function greet() ( console.log('Hi, there.'); )

Izhod

 Zdravo

V zgornjem programu se funkcija greetpokliče, preden jo prijavi in ​​program prikaže izhodne podatke. To je posledica dvigovanja.

Ko pa je funkcija uporabljena kot izraz , pride do napake, ker so dvignjene samo izjave. Na primer;

 // program to print the text greet(); let greet = function() ( console.log('Hi, there.'); )

Izhod

 Uncaught ReferenceError: pozdrav ni definiran

Če bi varbil uporabljen v zgornjem programu, bi bila napaka:

 Uncaught TypeError: pozdrav ni funkcija

Opomba : Dvigovanja se na splošno ne izvajajo v drugih programskih jezikih, kot so Python, C, C ++, Java.

Dvigovanje lahko povzroči neželene rezultate v vašem programu. In najbolje je, da spremenljivke in funkcije najprej deklarirate, preden jih uporabite, in se izogibajte dvigovanju.

V primeru spremenljivk je bolje uporabiti letkot var.

Zanimive Članki...