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

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

Именованные функции (function foo() {}) и стрелочные (const foo = () => {}) отличаются поведением this, возможностью использования в качестве конструктора и поднятием (hoisting).

  1. this:
    • В именованной this зависит от контекста вызова.
    • В стрелочной this берется из внешней области (лексический контекст).
  1. Конструктор:

    • Именованную можно вызывать с new.
    • Стрелочная не может быть конструктором.
  2. Hoisting:

    • Именованная поднимается, можно вызвать до объявления.
    • Стрелочная — нет.

Пример:

javascript
console.log(namedFunc()); // Работает (hoisting)
function namedFunc() { return "Hi"; }

console.log(arrowFunc()); // Ошибка (не hoisted)
const arrowFunc = () => "Hi";
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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