Встречается на собеседованиях • сегодня

В чем разница между объявлением функции Function Expression и Function Declaration

Function Declaration объявляется с помощью ключевого слова function и всегда поднимается (hoisted), что позволяет вызывать её до объявления в коде.

javascript
sayHello(); // Работает
function sayHello() {
  console.log('Hello!');
}

Function Expression создаётся путём присваивания функции переменной. Не поднимается, поэтому вызов до объявления вызовет ошибку.

javascript
sayHi(); // Ошибка: sayHi is not a function
const sayHi = function() {
  console.log('Hi!');
};

Основные различия:

  1. Hoisting: Declaration доступна до объявления, Expression — нет.
  2. Контекст: Expression можно использовать как анонимные функции (колбэки, IIFE).
  3. Гибкость: Expression удобны для условного создания функций.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы