➤ Function Declaration (Оголошена функція)
• Можуть бути викликані до їх оголошення (hoisting).
• Мають доступ до this, який залежить від контексту виклику.
function myFunction(a, b) {
return a * b;
}
➤ Function Expression (Функціональний вираз)
• Вона не піднімається (hoisting не працює).
• this також залежить від контексту.
const multiply = function(a, b) {
return a * b;
}
➤ Function Anonymous (Анонімні функції)
• Часто використовуються як callback або в функціональних виразах.
function() {
}
setTimeout(function() {
console.log('Delayed message');
}, 1000);
const multiply = function (a, b) {
return a * b;
};
➤ Arrow Function (Стрілкова функція)
• Hе може бути використана як конструктор.
• Стрілкові функції повертають значення за замовчуванням.
• Стрілкові функції можуть бути асинхронними, якщо перед виразом додати ключове слово async.
() => {}
() => expression
param => expression
(param1, paramN) => expression
async param => expression
➤ Immediately Invoked Function Expression (IIFE)
• Ви повинні додати дужки навколо функції, за виразом слідують ().
• Функція, що викликається одразу після створення.
• Вона використовується для створення локальної області видимості та ізоляції коду.
(function () {
console.log('IIFE executed!');
})();
➤ The Function() Constructor (Конструктор Function())
• Функції також можна визначити за допомогою вбудованого конструктора функцій JavaScript під назвою Function().
const myFunction = new Function('a', 'b', 'return a * b');
let x = myFunction(4, 3);
➤ Generator Functions (Функції-генератори)
• Функції, які можуть бути призупинені та відновлені.
• Використовують ключове слово yield для повернення значень.
• Основним методом генератора є next(). При виклику він запускає виконання коду до найближчого оператора yield.
function* count() {
let i = 0;
while (true) {
yield i++;
}
}
const counter = count();
console.log(counter.next().value);