Bry*_*yce 33 javascript node.js
什么是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?
Run Code Online (Sandbox Code Playgroud)
附录:这似乎不适用于Chrome 33.0.1750.152,Safari 7.0.2或Firefox 27.01.这实际上是某种ECMAScript解释的"特征",还是Node的特殊性?如果Node正在使用V8,那么它是否应该与Chrome结果匹配?
小智 23
控制台可能会将所有内容包装在eval语句中:实际评估的内容可能是eval(a)().在这种情况下,Chrome也会返回42.