Perché è possibile chiamare la funzione in JavaScript in questo modo, testata con node.js:
~$ node
> function hi() { console.log("Hello, World!"); };
undefined
> hi
[Function: hi]
> hi()
Hello, World!
undefined
> hi)( // WTF?
Hello, World!
undefined
>
Perché l'ultima chiamata hi)(
funziona? È bug in node.js, bug nel motore V8, comportamento ufficialmente indefinito o JavaScript effettivamente valido per tutti gli interpreti?
.js
causerà un errore di sintassi
perl -ne '$x += $_; }{ print $x'
. Guarda le funzioni nascoste di Perl