Function Expression в JavaScript

Function Expression (функциональное выражение) — это способ создания функции в JavaScript, при котором функция определяется как часть выражения (например, присваивается переменной). В отличие от Function Declaration, Function Expression не поднимается (не hoisted) и может быть анонимной или именованной.

Синтаксис Function Expression:

const имяПеременной = function(параметры) {
  // тело функции
};

function — ключевое слово для создания функции.

имяПеременной — переменная, которой присваивается функция.

параметры — аргументы, которые передаются в функцию (необязательно).

тело функции — код, который выполняется при вызове функции.

Пример Function Expression:

const greet = function(name) {
  console.log(`Hello, ${name}!`);
};

greet("Elle"); // Hello, Elle!

Function Expression не поднимается вверх области видимости. Это означает, что функцию можно вызвать только после её объявления.

greet("Elle"); // Ошибка: greet is not defined

const greet = function(name) {
  console.log(`Hello, ${name}!`);
};

Function Expression может не иметь имени (анонимная функция).

const sum = function(a, b) {
  return a + b;
};
console.log(sum(2, 3)); // 5

Function Expression создаётся только тогда, когда выполнение кода доходит до её объявления.

Когда используется Function Expression:

Function Expression часто используется для создания замыканий, когда функция сохраняет доступ к переменным из внешней области видимости

Function Expression создаётся только при выполнении кода, что полезно для условного создания функций

Для передачи функции в качестве аргумента (callback)

Function Expression — это гибкий способ создания функций в JavaScript. Он позволяет создавать анонимные и именованные функции, которые могут быть использованы в различных контекстах, таких как колбэки, методы объектов или замыкания.