ЈаваСцрипт дизање (са примерима)

У овом упутству ћете научити о подизању ЈаваСцрипт-а уз помоћ примера.

Дизање у ЈаваСцрипт је понашање у којем се функција или променљива могу користити пре декларације. На пример,

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

Горе наведени програм ради и излаз неће бити дефинисан. Горе наведени програм понаша се као

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

Пошто је варијабла тест само декларисана и нема вредност, undefinedњој се додељује вредност.

Ако желите да сазнате више о променљивим, посетите ЈаваСцрипт променљиве.

Напомена : Иако се чини да се декларација у програму померила према горе, стварна ствар која се дешава је да се декларације функција и променљивих додају у меморију током фазе компајлирања.

Променљиво подизање

Што се тиче варијабли и константи, кључна реч varје подигнута и letи constне дозвољава дизања.

На пример,

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

У горњем примеру, променљива а се користи пре него што је објави. А програм ради и приказује излаз 5. Програм се понаша као:

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

Међутим, у ЈаваСцрипт-у се иницијализације не подижу. На пример,

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

Оутпут

 недефинисан

Горњи програм понаша се као:

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

Само се декларација премешта у меморију у фази компајлирања. Дакле, вредност променљиве а је undefinedзато што се а исписује без иницијализације.

Такође, када се променљива користи унутар функције, променљива се подиже само на врх функције. На пример,

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

Оутпут

 здраво Унцаугхт РеференцеЕррор: б није дефинисан

У горњем примеру, променљива б је подигнута на врх функције greetи постаје локална променљива. Отуда је б доступан само унутар функције. б не постаје глобална променљива.

Да бисте сазнали више о локалним и глобалним променљивим, посетите ЈаваСцрипт променљиви опсег.

Напомена : У подизању, декларација променљиве је доступна само непосредном опсегу.

Ако се променљива користи са letкључном речи, та променљива се не подиже. На пример,

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

Оутпут

 Унцаугхт РеференцеЕррор: Не може се приступити 'а' пре иницијализације

Током коришћења let, променљива мора бити декларисана прва.

Функција подизања

Функција се може позвати пре него што је пријави. На пример,

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

Оутпут

 Здраво

У горе наведеном програму, функција greetсе позива пре него што је пријави и програм приказује излаз. Ово је због дизања.

Међутим, када се функција користи као израз , долази до грешке јер се подижу само декларације. На пример;

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

Оутпут

 Унцаугхт РеференцеЕррор: поздрав није дефинисан

Ако varсе користи у горњем програму, грешка би била:

 Унцаугхт ТипеЕррор: поздрав није функција

Напомена : Генерално се подизање не врши на другим програмским језицима као што су Питхон, Ц, Ц ++, Јава.

Подизање може проузроковати нежељене исходе у вашем програму. И најбоље је прво декларисати променљиве и функције пре него што их употребите и избегавајте подизање.

У случају променљивих, боље је користити letнего var.

Занимљиви Чланци...