Встречается на собеседованиях • сегодня
В чем разница между Function Expression, Function Declaration и стрелочной функцией
Function Declaration объявляется с ключевым словом function и поднимается (hoisting), поэтому доступна до объявления:
javascript
sayHi(); // Работает
function sayHi() { return 'Hi!'; }Function Expression создается при присвоении функции переменной, не подвергается hoisting:
javascript
sayHi(); // Ошибка
const sayHi = function() { return 'Hi!'; };Стрелочная функция (Arrow Function) - компактный синтаксис без собственного this, arguments, не может быть конструктором:
javascript
const sayHi = () => 'Hi!';Ключевые отличия:
- Hoisting (только Declaration)
- Контекст
this(у стрелочных берется из внешней области) - Возможность использования как конструктор (стрелочные нельзя)
- Наличие
arguments(нет у стрелочных)

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы