Функциональное выражение (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()); // зависит от условия