Первое, что нужно понять, это то, что в JavaScript функции носят много шляп:
- Они являются "первоклассными гражданами", то есть они являются данными .Они могут быть сохранены, они могут быть переданы, и они могут быть назначены.
- Они являются объектами.
- Они являются вызываемыми единицами кода.
Итак, еслиВы принимаете, что следующие выражения являются выражениями:
3 // is an expression
[1,2] // is an expression
{'a':2, 'b':[1,2,3]} // is an expression
Затем вы можете начать понимать, как:
let foo = function(){}
также является выражением - - выражением функции.Функция является значением .
С MDN :
Выражение функции очень похоже на иимеет почти такой же синтаксис, что и оператор функции (подробнее см. оператор функции).Основное различие между выражением функции и оператором функции заключается в имени функции, которое может быть опущено в выражениях функций для создания анонимных функций.Выражение функции можно использовать как IIFE (выражение для немедленного вызова функции), которое запускается сразу после его определения.См. Также главу о функциях для получения дополнительной информации.
И из MDN специально для выражений :
Выражения
Выражение - это любая допустимая единица кода, которая разрешается до значения.
Каждое синтаксически допустимое выражение разрешается до некоторого значения, но концептуально существует два типа выражений: с боковойэффекты (например, те, которые присваивают значение переменной) и те, которые в некотором смысле оценивают и, следовательно, разрешают значение.
Выражение x = 7 является примером первого типа.Это выражение использует оператор = для присвоения значения семь переменной x.Само выражение оценивается до семи.
Код 3 + 4 является примером второго типа выражения.Это выражение использует оператор +, чтобы сложить три и четыре вместе, не присваивая результату семь переменную.
JavaScript имеет следующие категории выражений:
- Арифметика: вычисляется какномер, например 3.14159.(Обычно используются арифметические операторы.)
- String: оценивается как строка символов, например, «Fred» или «234».(Обычно используются строковые операторы.)
- Logical: оценивается как true или false.(Часто включает в себя логические операторы.)
- Первичные выражения: основные ключевые слова и общие выражения в JavaScript.
- Левые выражения: левые значения являются назначением назначения.
Поскольку функции являются значениями, они являются выражениями, не отличающимися от того, как 3
является выражением, поскольку 3
является значением.