http://learn.javascript.ru/function-...ion-expression
Цитата:
|
Общее правило таково:
Если браузер видит function в основном потоке кода - он считает, что это Function Declaration.
Если же function идёт в составе более сложного выражения, то он считает, что это Function Expression.
|
здесь всё хорошо, понятно и удобно для дальнейшего использования
а кто-нибудь пытался вывести это чисто формально, основываясь только на спецификации, например, на примере того же унарного плюса?
http://es5.javascript.ru/x11.html#x11.4.6
Цитата:
|
UnaryExpression : + UnaryExpression
|
http://es5.javascript.ru/x11.html#x11.4
Цитата:
|
UnaryExpression :
PostfixExpression
delete UnaryExpression
void UnaryExpression
typeof UnaryExpression
++ UnaryExpression
-- UnaryExpression
+ UnaryExpression
- UnaryExpression
~ UnaryExpression
! UnaryExpression
|
как сюда вообще может попасть FunctionExpression, если на вход этому оператору оно не ожидается?
с оператором группировки немного получше
http://es5.javascript.ru/x11.html#x11.1.6
Цитата:
|
PrimaryExpression : ( Expression )
|
получше, если самому додумать, что Expression - это некое произвольное выражение, по крайней мере, формального и неформального определения для Expression в тексте спецификации я не нашёл
попутно возник ещё один вопрос: обычно приоритет операторов смотрел где-нибудь типа здесь
https://developer.mozilla.org/en-US/...tor_Precedence
в спецификации это где-то обозначено?