Las funciones son el objeto más flexible en JavaScript. Aquí solo explicamos el propósito de sus funciones anónimas. Las funciones anónimas se refieren a funciones que no especifican nombres de funciones o punteros. Las funciones anónimas de la autoexección son solo una de ellas. La siguiente se llama esta función: función de auto-ejecución.
Esta es una de las funciones de auto-ejecutivas más comunes:
// función anónima tradicional (function () {alert ('hola');}) ();El efecto de ejecución de este código es aparecer cuando la página se vuelve a cargar: "Hola"
¿Qué le indica que se ejecute automáticamente? , ver el siguiente código
// Eliminar los soportes en la escritura tradicional y agregar el operador ~,!,+,-~ function () {alert ('hello');} () ;! function () {alert ('hello');} ();+function () {alert ('hello');} ();-function () {alerta ('hola');} ();Estos métodos de escritura no son diferentes de los métodos tradicionales mencionados anteriormente.
Descubrí que el punto común de estos métodos de escritura son los operadores. De hecho, la forma tradicional de soportes () también pertenece a un tipo de operación, que aparece en: a = b*(c+d).
Operador + parámetros pasados a autogenerados = las funciones se ejecutan automáticamente? Pero algunos símbolos tampoco son compatibles, como el signo "=, *, /". La razón por la que se ejecuta a sí mismo sigue siendo muy misterioso, y no hay una respuesta decente en Internet.
Luego descubrí un fenómeno mágico donde estos operadores pueden superponerse infinitamente. . . . . .
// La función está precedida por un símbolo específico que se puede superponer infinitely...~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+- ~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~) -~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~! +-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+- ~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~) -~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~! +-~!+-~~~~~~~~~~~~~~~~ ~!+-~~~~~~~~~~~~~~~–!+!+-~~~~~~~~~~~~~~~
¡El programa se ejecuta normalmente!
Sin embargo, hay dos situaciones en las que se informarán errores
Si tres o más símbolos "+" o "-" aparecen en sucesión, se producirá un error;
Si dos símbolos "+" o "-" aparecen en sucesión y son seguidos por otros símbolos, se producirá un error, como "++ ~", "-+";
Solicitud de error: referenceRorRor no capturado: expresión lateral izquierda no válida en la operación de prefijo (lo que significa el error de expresión de izquierda)
Luego usé el mismo símbolo para calcular una variable y descubrí que era exactamente lo mismo. ¡Esto ya puede explicarse que la operación de JavaScript solicita la ejecución automática de la función, o puede entenderse que llama a esta función a través de operaciones!
¡No es que la función se ejecute, sino que esta función se llama a través de las operaciones! , pero solo se admiten algunos métodos de cálculo!
¡Además, esta función de auto ejecución puede no ser una función anónima! Mirando el código anterior, definí el nombre de la función A en la función después del operador, y no hubo excepción, pero fue inútil, ¡!, ¡Todavía no puede ser llamado por otros métodos, pero creo que es un poco inapropiado para muchas personas llamarlo una función anónima!
Lo anterior es un breve análisis del principio de la función anónima de autoexpresión de JavaScript (function () {}) () introducido por el editor. ¡Espero que sea útil para todos!