BLACK FRIDAY

осталось 2 дня

Скидка 10% и подарок на выбор — при покупке одной программы
При покупке двух программ  — вторая со скидкой 50%

Чем отличается объявление функции через стрелочную нотацию и function

В чем разница между объявлением функции через const name = () => {} и function?

Ответы
Аватар пользователя Ivan Gagarinov
Ivan Gagarinov
04 июля 2022

Объявление стрелочной функции const name = () => {} это присваивание некоторого выражения в константу. Выражением тут является анонимная функция () => {}, и это накладывает теже ограничения, какие существуют для констант: нельзя переназначить константу и нельзя ее использовать до того, как она объявлена, а так же ограничивается зона видимости по всем правилам создания переменных через const, let, var.

Объявление через function () {} расширяет зону видимости функции и позволяет её использовать до создания функции. Например:

const hello = myFunc();
console.log(hello); // => hello
function myFunc() {
  return 'hello';
}

Также у стрелочных функций нет своего контекста, они берут текущий контекст в момент своего создания. Подробнее об этом написано здесь.

Добавьте ваш ответ

Рекомендуемые курсы

состояние
JSX
компоненты
производительность
26 часов
Посмотреть
утверждения
jest
матчеры
юнит-тесты
14 часов
Посмотреть
Алгоритмы сортировки
Структуры данных
Бинарный поиск
Жадные алгоритмы
10 часов
Посмотреть