Skip to main content

Різниця між FD і FE

1. Function Declaration (оголошення функції)

Приклад:

javascript
function sayHello() { console.log("Привіт!"); }

Особливості:

  • Хойститься (hoisting) - тобто функція доступна до місця її оголошення.
  • Ім'я функції фіксоване і доступне в поточній області видимості.
  • Можна викликати в будь-якому місці файлу або блоку, навіть до коду оголошення.

Приклад роботи hoisting:

javascript
greet(); // працює, хоча функція оголошена нижче function greet() { console.log("Hello!"); }

Результат:

javascript
Hello!

2. Function Expression (функціональний вираз)

Приклад:

javascript
const sayHello = function() { console.log("Привіт!"); };

або стрілкова версія:

javascript
const sayHello = () => console.log("Привіт!");

Особливості:

  • Не хойститься як оголошення - змінна створюється, але функція в ній недоступна до ініціалізації.
  • Може бути анонімною (без імені) або іменованою.
  • Вважається виразом, тому викликається лише після присвоєння.

Приклад:

javascript
sayHello(); // Помилка: sayHello is not a function const sayHello = function() { console.log("Привіт!"); };

Ключові відмінності

ВластивістьFunction DeclarationFunction Expression
Hoisting (підняття)Доступна до оголошенняНедоступна до присвоєння
Коли створюєтьсяПри ініціалізації області видимостіПід час виконання рядка
Можна викликати до оголошення?ТакНі
Ім'я функціїОбов'язкове (декларація завжди іменована)Може бути анонімною або іменованою
Підходить дляОсновних функцій, які потрібні всюдиЛокальних, переданих як аргументи, колбеків
Приклад використанняfunction sum(a,b){}const sum = (a,b)=>{}

3. Приклад для наочного порівняння

javascript
// --- Function Declaration --- sayHi(); // Працює function sayHi() { console.log("Hi!"); } // --- Function Expression --- sayBye(); // Помилка const sayBye = function() { console.log("Bye!"); };

Коли що використовувати

Function Declaration - коли функція потрібна глобально і її можна викликати в будь-якому місці. Function Expression / Arrow Function - коли функція потрібна локально, як обробник, колбек, або частина виразу.


Коротко запам'ятати

function declaration - створюється заздалегідь (hoisting). function expression - створюється в момент виконання.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.