PassFront
  1. PassFront
  2. База знаний
  3. Функции

Что такое 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 переменной (не функции), поэтому вызвать до объявления нельзя. Может быть анонимной или именованной; стрелки — тоже выражения.

Другие вопросы раздела