[js][duda] como y cuando usar "!function" (para que sirve)

Iniciado por .:Xx4NG3LxX:., 27 Noviembre 2020, 04:05 AM

0 Miembros y 1 Visitante están viendo este tema.

.:Xx4NG3LxX:.

Hello friends....

He visto varios JavaScripts que incluyen !function, por más que he buscado y buscado no encontré nada. Esperaba que me pudiesen orientar en esto.

¿Es algún tipo especial de función?
¿Cuándo aplicarlo y cuando no?
¿Es la única que hay de ese tipo? (Es decir, ¿no existe otra keyword que sea algo por el estilo?)

Gracias y saludos..
"Quizá Batch no sea un lenguaje de programación, pero no obstante deja de ser útil. Asi que no anden diciendo «Que ganas de perder el tiempo»"



@XSStringManolo

El operador ! es el operador de negación. Algunas veces se utiliza antes de la keyword function para convertirla en una function expression. Si le añades paréntesis se produce la llamada a la función retornando true (porque las function expression llamadas de esta forma retornan undefined y el operador ! (not) retorna un booleando con el valor contrario al especificado. Es decir, si era valor positivo pasa a negativo y si era negativo pasa a positivo. Ej:
La función:
function saludar() { alert("Hola") }
Puedes crearla e invocarla con:
!function saludar() { alert("Hola") }();


La forma más frecuente de realizar esto es utilizando la sintaxis:
(function saludar() { alert("Hola") })();
Utilizando el ! se ahorra un caracter, pero esta forma de hacerlo si retorna el valor de retorno de la función. Si le sumas que puedes utilizar la sintaxis de function arrow de ES6+:
alert( (() => 5 * 5)() );
suma( (numero => numero * 5)(), 8);
suma( (numero => numero * 5)(), (otroNumero => numero * 7)() );

Suele ser bastante práctico para usar como parámetros de otras funciones, crear closures, encapsular el scope, ahorrar código...