Чем стрелочные функции отличаются от обычных function declaration/function expression?

Особенности стрелочных функций в JavaScript:

Короткий ответ

Что ответить на собеседовании

Особенности стрелочных функций в JavaScript:

Подробный разбор

Ответ с пояснениями

Особенности стрелочных функций в JavaScript:

  • Лексическое связывание this: стрелочные функции не имеют собственного контекста this, они наследуют его из окружающей области видимости. Это удобно для сохранения контекста внутри колбеков.
  • Отсутствие arguments: у стрелочных функций нет собственного объекта arguments. Для доступа к аргументам нужно использовать параметры или rest-параметры.
  • Нельзя использовать как конструктор: стрелочные функции нельзя вызвать с new, они не имеют внутреннего метода [[Construct]].
  • Нет prototype: у стрелочных функций отсутствует свойство prototype.
  • Синтаксис короче: если тело функции состоит из одного выражения, можно опустить фигурные скобки и return.

Пример:

const add = (a, b) => a + b;

const obj = {
  value: 10,
  increment: function() {
    setTimeout(() => {
      this.value++;
      console.log(this.value); // this ссылается на obj
    }, 1000);
  }
};
obj.increment();

Здесь стрелочная функция внутри setTimeout наследует this от метода increment.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку