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