JavaScripti tõstmine (koos näidetega)

Selles õpetuses saate näidete abil õppida JavaScripti tõstmist.

JavaScripti tõstmine on käitumine, kus funktsiooni või muutujat saab kasutada enne avaldamist. Näiteks,

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

Ülaltoodud programm töötab ja väljund on määratlemata. Ülaltoodud programm käitub nii

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

Kuna muutuja test on ainult deklareeritud ja sellel pole väärtust, undefinedmääratakse sellele väärtus.

Kui soovite muutujate kohta lisateavet, külastage JavaScripti muutujaid.

Märkus . Ehkki näib, et deklaratsioon on programmis ülespoole liikunud, juhtub tegelikult see, et funktsioon ja muutujadeklaratsioonid lisatakse kompileerimise etapis mällu.

Muutuv tõstmine

Seoses muutujad ja konstandid, märksõna varheisatakse ja letja constei võimalda heiskamise.

Näiteks,

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

Ülaltoodud näites kasutatakse muutujat enne selle deklareerimist. Ja programm töötab ja kuvab väljundi 5. Programm käitub järgmiselt:

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

Kuid JavaScripti initsialiseerimist ei tühistata. Näiteks,

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

Väljund

 määratlemata

Ülaltoodud programm käitub järgmiselt:

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

Ainult deklaratsioon teisaldatakse kompileerimise faasis mällu. Seega on muutuja a väärtus undefinedseetõttu, et a trükitakse seda initsialiseerimata.

Samuti, kui muutujat kasutatakse funktsiooni sees, tõstetakse muutuja ainult funktsiooni tippu. Näiteks,

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

Väljund

 tere Uncaught ReferenceError: b pole määratletud

Ülaltoodud näites tõstetakse muutuja b funktsiooni tippu greetja sellest saab lokaalne muutuja. Seega on b juurdepääsetav ainult funktsiooni sees. b ei muutu globaalseks muutujaks.

Kohalike ja globaalsete muutujate kohta lisateabe saamiseks külastage JavaScripti muutuja ulatust.

Märkus . Tõstmisel on muutuja deklaratsioon juurdepääsetav ainult vahetu ulatusega.

Kui letmärksõnaga kasutatakse muutujat , siis seda muutujat ei tõsteta. Näiteks,

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

Väljund

 Püüdmata ReferenceError: enne lähtestamist ei pääse 'a' juurde

Kasutamise ajal lettuleb kõigepealt deklareerida muutuja.

Funktsiooni tõstmine

Funktsiooni saab enne selle deklareerimist kutsuda. Näiteks,

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

Väljund

 Tere

Ülaltoodud programmis greetkutsutakse funktsioon enne selle deklareerimist ja programm näitab väljundit. Selle põhjuseks on tõstmine.

Kuid kui funktsiooni kasutatakse avaldisena , ilmneb tõrge, sest ainult deklaratsioonid on heisatud. Näiteks;

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

Väljund

 Püüdmatu ReferenceError: tervitus pole määratletud

Kui varseda kasutati ülaltoodud programmis, oleks viga järgmine:

 Püütamata TypeError: tervitus pole funktsioon

Märkus . Üldiselt ei tehta tõstmist muudes programmeerimiskeeltes, nagu Python, C, C ++, Java.

Tõstmine võib teie programmis põhjustada soovimatuid tulemusi. Parim on deklareerida muutujad ja funktsioonid enne nende kasutamist ning vältida tõstmist.

Muutujate puhul on parem kasutada letkui var.

Huvitavad Artiklid...