Middle
Koji načini postoje za deklarisanje funkcija u JavaScript-u? Čime se razlikuje deklaracija funkcije od izraza funkcije? Čime se razlikuje strelica funkcija od deklaracije funkcije?
sobes.tech АИ
Одговор од АИ
В 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).
- Более компактный синтаксис.
Таким образом, выбор способа объявления зависит от контекста и требований к поведению функции.