Что такое Function Expression?
Функции
Function Expression (функциональное выражение) — это создание функции как значения, присваиваемого переменной или передаваемого как аргумент. В отличие от Function Declaration, оно не всплывает целиком.
Синтаксис
const sum = function (a, b) {
return a + b;
};
// именованное функциональное выражение
const factorial = function fac(n) {
return n <= 1 ? 1 : n * fac(n - 1);
};
// стрелочная функция — тоже выражение
const multiply = (a, b) => a * b;Особенности
- Hoisting переменной, а не функции — до инициализации функция недоступна:
sum(1, 2); // TypeError / ReferenceError
const sum = function () {};- Часто анонимно, но может иметь имя (полезно для рекурсии и стектрейсов).
- Может передаваться как колбэк напрямую.
Function Expression против Declaration
- Declaration (
function f(){}) — всплывает целиком, доступна до объявления. - Expression (
const f = function(){}) — привязана к переменной, до инициализации недоступна.
Где применяют
Колбэки, IIFE, присваивание условных функций, методы объектов, стрелки.
Коротко для собеседования
Function Expression — функция как значение, присвоенное переменной. Работает hoisting переменной (не функции), поэтому вызвать до объявления нельзя. Может быть анонимной или именованной; стрелки — тоже выражения.