У цьому підручнику ви дізнаєтесь про підняття 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: привітання не визначено
Якби це var
було використано у вищезазначеній програмі, помилка буде такою:
Uncaught TypeError: привітання не є функцією
Примітка : Як правило, піднімання не виконується в інших мовах програмування, таких як Python, C, C ++, Java.
Підйом може призвести до небажаних результатів у вашій програмі. І найкраще спочатку оголосити змінні та функції перед їх використанням та уникати підняття.
У випадку змінних краще використовувати let
ніж var
.