¿Por qué es posible llamar a la función en JavaScript de esta manera, probado con node.js:
~$ node
> function hi() { console.log("Hello, World!"); };
undefined
> hi
[Function: hi]
> hi()
Hello, World!
undefined
> hi)( // WTF?
Hello, World!
undefined
>
¿Por qué funciona la última llamada hi)(
? ¿Es un error en node.js, un error en el motor V8, un comportamiento oficialmente indefinido o un JavaScript realmente válido para todos los intérpretes?
.js
causará un error de sintaxis
perl -ne '$x += $_; }{ print $x'
. Ver características ocultas de Perl