JavaScript pacelšana (ar piemēriem)

Šajā apmācībā jūs uzzināsit par JavaScript pacelšanu, izmantojot piemērus.

Pacelšana JavaScript ir uzvedība, kurā funkciju vai mainīgo var izmantot pirms deklarēšanas. Piemēram,

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

Iepriekš minētā programma darbojas, un izeja nebūs definēta. Iepriekš minētā programma darbojas kā

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

Tā kā mainīgais tests ir tikai deklarēts un tam nav vērtības, tam undefinedtiek piešķirta vērtība.

Ja vēlaties uzzināt vairāk par mainīgajiem, apmeklējiet JavaScript mainīgos.

Piezīme : Lai gan šķiet, ka deklarācija programmā ir pārvietojusies uz augšu, faktiski notiek tas, ka funkcija un mainīgo deklarācijas tiek pievienotas atmiņai kompilēšanas posmā.

Mainīga pacelšana

Runājot par mainīgajiem un konstantēm atslēgvārds vartiek pacelts, un let, un constneļauj celšanas.

Piemēram,

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

Iepriekš minētajā piemērā mainīgais a tiek izmantots pirms tā deklarēšanas. Un programma darbojas un parāda izeju 5. Programma rīkojas šādi:

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

Tomēr JavaScript valodā inicializācijas netiek atceltas. Piemēram,

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

Rezultāts

 nenoteikts

Iepriekš minētā programma darbojas šādi:

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

Tikai deklarācija tiek pārvietota uz atmiņu kompilēšanas fāzē. Tādējādi mainīgā a vērtība ir undefinedtāpēc, ka a tiek drukāts, to neinicializējot.

Turklāt, ja mainīgais tiek izmantots funkcijas iekšienē, mainīgais tiek pacelts tikai līdz funkcijas augšdaļai. Piemēram,

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

Rezultāts

 sveiki Nenotverta ReferenceError: b nav definēts

Iepriekš minētajā piemērā mainīgais b tiek pacelts līdz funkcijas augšdaļai greetun kļūst par lokālo mainīgo. Tādējādi b ir pieejams tikai funkcijas iekšpusē. b nekļūst par globālo mainīgo.

Lai uzzinātu vairāk par lokālajiem un globālajiem mainīgajiem, apmeklējiet JavaScript mainīgo tvērumu.

Piezīme : Pacelšanas laikā mainīgā deklarācija ir pieejama tikai tiešajai darbības jomai.

Ja mainīgais tiek izmantots ar letatslēgvārdu, šis mainīgais netiek pacelts. Piemēram,

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

Rezultāts

 Nenotverta ReferenceError: pirms inicializācijas nevar piekļūt “a”

Lietošanas letlaikā mainīgais ir jādeklarē vispirms.

Funkcijas pacelšana

Funkciju var izsaukt pirms tās deklarēšanas. Piemēram,

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

Rezultāts

 Sveiki

Iepriekš minētajā programmā funkcija greettiek izsaukta pirms tās deklarēšanas, un programma parāda izvadi. Tas ir saistīts ar pacelšanu.

Tomēr, ja funkcija tiek izmantota kā izteiksme , rodas kļūda, jo tiek uzvilktas tikai deklarācijas. Piemēram;

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

Rezultāts

 Nenotverta ReferenceError: sveiciens nav definēts

Ja varto izmantotu iepriekš minētajā programmā, kļūda būtu:

 Nenotverta TypeError: sveiciens nav funkcija

Piezīme : Parasti pacelšana netiek veikta citās programmēšanas valodās, piemēram, Python, C, C ++, Java.

Pacelšana var izraisīt nevēlamus rezultātus jūsu programmā. Vislabāk ir vispirms deklarēt mainīgos un funkcijas, pirms tos izmantot, un izvairīties no pacelšanas.

Mainīgo gadījumā labāk izmantot letnevis var.

Interesanti raksti...