Back to questions
ОТП Банк
Middle
1
Какие способы объявления функций существуют в JavaScript? Чем отличается function declaration от function expression? Чем стрелочная функция отличается от function declaration?
Companies where asked
Answer from AI
sobes.tech AI
В JavaScript есть несколько способов объявления функций:
- Function Declaration (Объявление функции):
function foo() {
return 'bar';
}
Функция поднимается (hoisted) в начало области видимости, её можно вызвать до объявления.
- Function Expression (Функциональное выражение):
const foo = function() {
return 'bar';
};
Функция создаётся в момент выполнения, не поднимается, вызвать до объявления нельзя.
- Arrow Function (Стрелочная функция):
const foo = () => 'bar';
Отличия стрелочной функции от function declaration:
- Не имеет собственного this, наследует его из внешнего контекста.
- Не имеет arguments, super, new.target.
- Не может использоваться как конструктор (нельзя вызвать с new).
- Более компактный синтаксис.
Таким образом, выбор способа объявления зависит от контекста и требований к поведению функции.