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

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

Стрелочные функции (=>) и функциональное декларирование (function) имеют несколько ключевых отличий:

  1. Контекст (this):
    • У обычной функции свой this, который зависит от контекста вызова.
    • У стрелочной функции нет своего this — она использует this из внешней области.
javascript
const obj = {
  name: 'Test',
  regularFunc: function() { console.log(this.name) }, // 'Test'
  arrowFunc: () => console.log(this.name) // undefined (если не в strict mode)
};
  1. Аргументы (arguments):

    • Обычная функция имеет доступ к arguments.
    • Стрелочная — нет.
  2. Использование new:

    • Обычную функцию можно вызвать с new (как конструктор).
    • Стрелочную — нельзя.
  3. Поднятие (hoisting):

    • Обычные функции поднимаются (можно вызывать до объявления).
    • Стрелочные — нет (должны быть объявлены до вызова).
javascript
foo(); // Работает
function foo() {}

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

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

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

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