Может ли Function Expression быть именованным и зачем может понадобиться имя функции?

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

Короткий ответ

Что ответить на собеседовании

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

Подробный разбор

Ответ с пояснениями

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');
};

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку