Function Declaration і Function Expression JavaScript

44

Від автора: вітаю вас, друзі. Ми продовжуємо цикл статей, присвячених вивченню JavaScript. І сьогодні ми з вами познайомимося з такими поняттями, як Function Declaration і Function Expression JavaScript, а також дізнаємося, в чому різниця між ними. Приступимо.

Власне, з Function Declaration ми з вами вже знайомі, це стандартне оголошення або, іншими словами, декларування функції, яку ми можемо викликати в коді, як після оголошення функції, так і до цього:

hello(‘Виклик функції до її оголошення’);
function hello(param){
console.log(param);
}
hello(‘Виклик функції після її оголошення’);

Обидва виклику функції чудово відпрацюють:

Добре, а що з себе представляє Function Expression? Function Expression (функція вираження, функціональний вираз) — це ще один варіант створення функцій, який виглядає наступним чином:

var hello = function(param){
console.log(param);
};

Тобто, ми код функції присвоюємо звичайної змінної. Власне, змінна в даному випадку і буде тепер ні чим іншим, як функцією, ім’ям функції, за яким можна до неї звернутися. Давайте спробуємо викликати функцію двічі, як і в попередньому прикладі, до оголошення функції і після цього:

hello(‘Виклик функції до її оголошення’);
var hello = function(param){
console.log(param);
};
hello(‘Виклик функції після її оголошення’);

Упс! Не вийшло. Наш код повернув помилку, повідомляючи, що функції hello немає. Ця помилка спрацювала до оголошення функції. Ок, давайте спробуємо закоментувати перший виклик функції:

А ось другий виклик успішно відпрацював. Думаю, ви вже здогадалися, в чому конкретно полягає відмінність Function Declaration від Function Expression. Правильно, при декларуванні функції вона (функція) створюється до виконання решти коду. Відповідно, до моменту початку виконання коду усі задекларовані функції вже створені і доступні до використання.

У випадку ж з функціональним виразом функції будуть створюватися тільки в момент виконання коду, а не перед ним. Використання Function Expression часто можна зустріти в коді різних бібліотек і скриптів, тому, якщо ви побачите запис в змінну деякої функції, не дивуйтеся — це Function Expression.

На цьому ми завершимо цю статтю. Якщо ви хочете більше дізнатися про JavaScript, тоді рекомендую звернути свою увагу на уроки по JavaScript і окремий курс по мові JavaScript. Удачі!