Function Declaration (объявление функции):
- Определяется с использованием ключевого слова
function, за которым следует имя функции и затем скобки для параметров.
- Подвергается хойстингу: функция доступна в области видимости до ее фактического объявления в коде.
- Используйте, когда нужно создать именованную функцию и ее последовательность вызова не имеет значения.
javascript
Function Expression (функциональное выражение):
- Определяется как часть выражения, чаще всего присваивание переменной.
- Не подвергается хойстингу: функция доступна только после того, как соответствующая строка кода будет выполнена.
- Может быть как именованным, так и анонимным (без имени).
- Используйте, когда нужно передать функцию как аргумент, создать немедленно выполняющуюся функцию (IIFE) или определить функцию в условии.
javascript
Сравнение:
| Особенность | Function Declaration | Function Expression |
|---|
| Хойстинг | Да | Нет |
| Доступность | До объявления в коде | После объявления в коде |
| Имя | Обязательно | Может быть анонимным |
| Синтаксис | function имя(...) {...} | const переменная = function(...) {...} |