Это способ определения функции в JavaScript, при котором функция создается как часть выражения и может быть присвоена переменной, объекту или передана в качестве аргумента другой функции. В отличие от Function Declaration (функционального объявления), функциональные выражения не подлежат "поднятию" (hoisting), что означает, что их можно использовать только после их определения.
🚩Примеры использования
Присваивание функции переменной
const add = function(a, b) {
return a + b;
};
console.log(add(2, 3)); // 5Анонимные функции
const greet = function(name) {
return `Hello, ${name}!`;
};
console.log(greet('Alice')); // Hello, Alice!Именованные функции
const factorial = function fact(n) {
if (n <= 1) return 1;
return n * fact(n - 1);
};
console.log(factorial(5)); // 120Использование функции в качестве аргумента другой функции
const numbers = [1, 2, 3, 4, 5];
const doubled = numbers.map(function(number) {
return number * 2;
});
console.log(doubled); // [2, 4, 6, 8, 10]
IIFE (Immediately Invoked Function Expression)
(function() {
const message = 'Hello, World!';
console.log(message);
})();
// Hello, World!Использование стрелочных функций
const multiply = (a, b) => a * b;
console.log(multiply(2, 3)); // 6
🚩Основные отличия
🟠Поднятие (Hoisting)
Функции, определенные с помощью функционального объявления, поднимаются, то есть могут быть вызваны до их определения в коде.
console.log(add(2, 3)); // 5
function add(a, b) {
return a + b;
}
Функциональные выражения не поднимаются, поэтому они могут быть использованы только после их определения.
console.log(add(2, 3)); // Ошибка: add is not defined
const add = function(a, b) {
return a + b;
};
🟠Именование
Обязательно имеют имя.
function subtract(a, b) {
return a - b;
}
Могут быть анонимными или именованными.
const divide = function(a, b) {
return a / b;
}; 🟠Использование в коде
Подходит для определения основных функций на верхнем уровне программы. Более гибкий способ определения функций, особенно полезен для создания замыканий, обработки событий и использования в функциональных конструкциях.
Ставь 👍 и забирай 📚 Базу знаний