Sobes.tech
Назад к вопросам
Middle+
10

Чем отличается function expression от function declaration?

Компании, где спрашивали
IT OneIT One

Ответ от нейросети

sobes.tech AI

Function Declaration — это объявление функции с помощью ключевого слова function в начале:

function greet() {
  console.log('Hello');
}

Function Expression — это присваивание функции переменной:

const greet = function() {
  console.log('Hello');
};

Основные отличия:

  • Hoisting (поднятие): Function Declaration поднимается в начало области видимости, и её можно вызвать до объявления. Function Expression — нет, её можно вызвать только после присваивания.

  • Имя функции: Function Declaration всегда имеет имя. Function Expression может быть анонимной или именованной.

  • Использование: Function Expression часто используется для передачи функций как значений, например, в коллбэках.

Пример hoisting:

sayHi(); // работает
function sayHi() { console.log('Hi'); }

sayBye(); // ошибка
const sayBye = function() { console.log('Bye'); };