Показать сообщение отдельно
  #3 (permalink)  
Старый 18.11.2014, 00:08
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

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
в спецификации это где-то обозначено?
Ответить с цитированием