Функциональное выражение (Function Expression)
Функциональное выражение (Function Expression)
Синтаксис функционального выражения:
const calculateSum = function(a, b) {
return a + b;
};
Здесь функция не объявляется как отдельная сущность с именем в области видимости. Вместо этого она создаётся как анонимная функция и присваивается переменной calculateSum.
Главное отличие от объявления функции — отсутствие поднятия. Вы не можете вызвать функцию до её присваивания:
console.log(calculateSum(2, 3)); // Ошибка: TypeError: calculateSum is not a function
const calculateSum = function(a, b) {
return a + b;
};
Это важно: функциональное выражение становится доступным только после строки, в которой оно присвоено.
Использование: передача функции как аргумента
Часто функциональные выражения используются, когда функция передаётся в другую функцию — например, как коллбэк.
Пример: обработка данных списка пользователей
const users = ['Анна', 'Иван', 'Мария'];
const capitalizedUsers = users.map(function(name) {
return name.charAt(0).toUpperCase() + name.slice(1);
});
console.log(capitalizedUsers); // ['Анна', 'Иван', 'Мария']
Здесь анонимная функция передаётся в метод map. Она будет вызвана для каждого элемента массива. Такой подход часто используется в мобильных приложениях при фильтрации, сортировке или преобразовании данных из API.
Функциональные выражения также полезны, когда вы хотите создать функцию динамически или условно:
let getGreeting;
if (isMorning) {
getGreeting = function() { return 'Доброе утро'; };
} else {
getGreeting = function() { return 'Добрый день'; };
}
console.log(getGreeting()); // зависит от условия