Повдигане на JavaScript (с примери)

В този урок ще научите за повдигането на JavaScript с помощта на примери.

Повдигането в JavaScript е поведение, при което може да се използва функция или променлива преди декларацията. Например,

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

Горната програма работи и изходът ще бъде недефиниран. Горната програма се държи като

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

Тъй като променливият тест е само деклариран и няма стойност, му undefinedсе присвоява стойност.

Ако искате да научите повече за променливите, посетете променливите на JavaScript.

Забележка : Въпреки че изглежда, че декларацията се е преместила нагоре в програмата, действителното нещо, което се случва, е, че декларациите за функции и променливи се добавят към паметта по време на фазата на компилиране.

Променливо повдигане

По отношение на променливи и константи, ключовата дума varе издигнато и letи constне позволява подемно.

Например,

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

В горния пример се използва променлива a преди да се декларира. И програмата работи и показва резултата 5. Програмата се държи като:

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

В JavaScript обаче инициализациите не се повдигат. Например,

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

Изход

 неопределено

Горната програма се държи като:

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

Само декларацията се премества в паметта във фазата на компилиране. Следователно стойността на променлива a е, undefinedзащото a се отпечатва, без да я инициализира.

Също така, когато променливата се използва във функцията, променливата се повдига само до върха на функцията. Например,

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

Изход

 здравей Uncaught ReferenceError: b не е дефиниран

В горния пример променливата b се издига до върха на функцията greetи се превръща в локална променлива. Следователно b е достъпен само във функцията. b не се превръща в глобална променлива.

За да научите повече за локалните и глобалните променливи, посетете обхвата на променливите на JavaScript.

Забележка : При повдигане декларацията на променливата е достъпна само за непосредствения обхват.

Ако се използва променлива с letключовата дума, тази променлива не се повдига. Например,

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

Изход

 Uncaught ReferenceError: Няма достъп до „a“ преди инициализация

Докато се използва 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.'); )

Изход

 Uncaught ReferenceError: greet не е дефиниран

Ако varсе използва в горната програма, грешката ще бъде:

 Uncaught TypeError: greet не е функция

Забележка : Обикновено повдигането не се извършва в други програмни езици като Python, C, C ++, Java.

Повдигането може да доведе до нежелани резултати във вашата програма. И най-добре е първо да декларирате променливи и функции, преди да ги използвате и да избягвате повдигането.

В случай на променливи е по-добре да се използва letот var.

Интересни статии...