Sobes.tech
Back to questions
Middle
1

Какие способы объявления функций существуют в JavaScript? Чем отличается function declaration от function expression? Чем стрелочная функция отличается от function declaration?

Companies where asked
ОТП БанкОТП Банк

Answer from AI

sobes.tech AI

В JavaScript есть несколько способов объявления функций:

  1. Function Declaration (Объявление функции):
function foo() {
  return 'bar';
}

Функция поднимается (hoisted) в начало области видимости, её можно вызвать до объявления.

  1. Function Expression (Функциональное выражение):
const foo = function() {
  return 'bar';
};

Функция создаётся в момент выполнения, не поднимается, вызвать до объявления нельзя.

  1. Arrow Function (Стрелочная функция):
const foo = () => 'bar';

Отличия стрелочной функции от function declaration:

  • Не имеет собственного this, наследует его из внешнего контекста.
  • Не имеет arguments, super, new.target.
  • Не может использоваться как конструктор (нельзя вызвать с new).
  • Более компактный синтаксис.

Таким образом, выбор способа объявления зависит от контекста и требований к поведению функции.