Javascript中的括号括起来

Javascript是什么让我可以在这样的函数调用中使用倒置/倒退括号? 我正在CLI的Node控制台上运行; 特别是节点版本0.10.25。

function a(){ return 42 } a() // -> 42 a)( // -> 42. WTF? function b(t){ return t } b(4) // -> 4 b)4( // No function evaluation; presumably dangling parentheses b)(4 // -> 4. WTF? 

附录:这在Chrome 33.0.1750.152,Safari 7.0.2或Firefox 27.01中似乎不起作用。 这实际上是某种ECMAScript解释的“特征”,还是一个节点的特性? 如果节点使用V8,不应该与Chrome结果相匹配吗?

控制台可能会将所有内容包含在eval语句中:实际评估的内容可能是eval(a)()。 在这种情况下,Chrome也会返回42。