Назад к вопросам
Middle
2
Что такое FunctionExpression и FunctionDeclaration? В чём их основное отличие?
Компании, где спрашивали
ТИМ ФОРС (проект Сбер)
Ответ от нейросети
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');
};