una que nombradas llamar initialize imprimir funciones funcion foo español ejercicios javascript

que - ! ¿Función anterior en javascript?



javascript function que es (3)

Posible duplicado:
¿Qué hace el signo de exclamación antes de la función?

Vi una función formateada como esta hoy por primera vez:

!function(){}();

¿Para qué sirve el signo de exclamación anterior? Asumo que funciona igual que:

(function(){})();

Pero ... ¿qué está pasando aquí?


Lo anterior ! toma la declaración que no se puede analizar y permite que sea analizada por el motor JS, que a su vez devuelve verdadero.

function(){}(); SyntaxError: Unexpected token ( !function(){}(); >>true


Lo he probado, se volvió verdad. La función devuelve undefined , y !undefined es verdadero.

!function(){}(); ^ ^ ^ C A B

  • A. function(){} es una función anónima vacía
  • B. () ejecuta la función (A), devolviendo undefined
  • C. ! niega undefined , que se hace true

Creo que usaron ese truco para un código de golf o un código ofuscado. Es una mala práctica utilizar esa práctica

Pruebe javascript:alert(!function(){}()) en la barra de direcciones de su navegador


Simplemente hace que el analizador de JavaScript lo analice como una expresión, lo cual es necesario para ejecutarlo.