Чем отличается объявление функции через стрелочную нотацию и 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';
}

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

1 0
Познакомьтесь с основами JavaScript бесплатно