192

Node.jsでテストされた、このようにJavaScriptで関数を呼び出すことができるのはなぜですか:

~$ node
> function hi() { console.log("Hello, World!"); };
undefined
> hi
[Function: hi]
> hi()
Hello, World!
undefined
> hi)( // WTF?
Hello, World!
undefined
>

最後の呼び出し が機能するのはなぜhi)(ですか? node.js のバグですか、V8 エンジンのバグですか、公式には未定義の動作ですか、それともすべてのインタープリターに対して実際に有効な JavaScript ですか?

4

3 に答える 3