Middle
Welke manieren bestaan er om functies te declareren in JavaScript? Hoe onderscheidt een function declaration zich van een function expression? Hoe onderscheidt een arrow functie zich van een function declaration?
sobes.tech AI
Antwoord van 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).
- Более компактный синтаксис.
Таким образом, выбор способа объявления зависит от контекста и требований к поведению функции.