Sobes.tech
Back to questions
Middle
3

Что такое FunctionExpression и FunctionDeclaration? В чём их основное отличие?

Companies where asked
ТИМ ФОРС (проект Сбер)

Answer from AI

sobes.tech AI

FunctionDeclaration — это объявление функции с помощью ключевого слова function и имени функции, например:

function greet() {
  console.log('Hello');
}

FunctionExpression — это функция, которая создаётся как выражение и может быть анонимной или именованной, например:

const greet = function() {
  console.log('Hello');
};

Основное отличие — это поднятие (hoisting):

  • FunctionDeclaration поднимается целиком, то есть её можно вызвать до объявления в коде.
  • FunctionExpression поднимается как переменная, но сама функция инициализируется только в момент присваивания, поэтому вызвать её до присваивания нельзя.

Пример:

sayHi(); // Работает
function sayHi() {
  console.log('Hi');
}

sayHello(); // Ошибка: sayHello is not a function
const sayHello = function() {
  console.log('Hello');
};