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

В чем разница между декларацией функции и функциональным выражением

Основное отличие в механизме hoisting'а и времени создания функции:

  1. Function Declaration объявляется до выполнения кода (hoisting), поэтому можно вызывать до объявления:
javascript
sayHi(); // Работает
function sayHi() { return 'Hi'; }
  1. Function Expression создается в момент выполнения, поэтому вызов до объявления вызовет ошибку:
javascript
hello(); // TypeError: hello is not a function
var hello = function() { return 'Hello'; }

Ключевые различия:

  • Function Declaration всегда имеет имя
  • Function Expression может быть анонимным
  • Function Declaration нельзя использовать в блоках (в strict mode)
  • Function Expression можно сразу вызывать (IIFE)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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