Junior
116
questionbank
В чем разница между двумя способами объявления функции?
Ответ от нейросети
sobes.tech AI
Функция-объявление (Function Declaration) и функция-выражение (Function Expression).
| Свойство | Функция-объявление (Function Declaration) | Функция-выражение (Function Expression) |
|---|---|---|
| Хоистинг | Поднимается (доступна до своего объявления в коде). | Не поднимается (недоступна до своего объявления). |
| Синтаксис | Объявляется как отдельный оператор. | Объявляется как часть выражения (например, присваивания или аргумента). |
| Пример | function myFunction() {} |
const myFunction = function() {}; или const myFunction = () => {}; |
| Использование | Предпочтительна для именованных стандартных функций. | Часто используется для анонимных функций, передаваемых как колбэки. |
| Область видимости | Доступна во всем своем содержащем блоке или скрипте/модуле. | Область видимости зависит от выражения, частью которого она является. |
// Пример Function Declaration
function sayHelloDeclaration() {
console.log('Hello from Declaration');
}
sayHelloDeclaration(); // Можно вызвать до объявления благодаря хоистингу
// Пример Function Expression
const sayHelloExpression = function() {
console.log('Hello from Expression');
};
sayHelloExpression(); // Можно вызвать только после объявления
// const sayHelloArrow = () => { // Пример стрелочной функции (также является Function Expression)
// console.log('Hello from Arrow Function');
// };