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

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

  1. Контекст (this)
    У обычной функции this динамический (зависит от вызова), у стрелочной — лексический (берется из внешней области).

    javascript
    const obj = {
      name: 'Test',
      regular: function() { console.log(this.name) }, // 'Test'
      arrow: () => console.log(this.name) // undefined (если не strict mode — window)
    };
  1. arguments
    Обычная функция имеет псевдомассив arguments, стрелочная — нет.

  2. Использование с new
    Обычную можно вызывать как конструктор (new Func()), стрелочную — нельзя.

  3. Синтаксис
    Стрелочные функции короче, особенно для однострочных выражений:

    javascript
    const sum = (a, b) => a + b; // return не нужен
  4. Привязка super/prototype
    У стрелочных нет prototype, они не подходят для методов класса, где нужен super.

Когда использовать:

  • Стрелочные — для колбэков, сохранения контекста.
  • Обычные — методы объектов/классов, конструкторы, функции с arguments.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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