Les fonctions sont l'objet le plus flexible de JavaScript. Nous expliquons ici le but de ses fonctions anonymes. Les fonctions anonymes se réfèrent à des fonctions qui ne spécifient pas les noms de fonction ou les pointeurs. Les fonctions anonymes auto-exécutantes ne sont que l'une d'entre elles. Ce qui suit est appelé cette fonction: fonction auto-exécutée.
Voici l'une des fonctions auto-exécutantes les plus courantes:
// fonction anonyme traditionnelle (function () {alert ('hello');}) ();L'effet d'exécution de ce code consiste à apparaître lorsque la page est rechargée: "Bonjour"
Qu'est-ce qui l'invite à s'exécuter automatiquement? , voir le code suivant
// supprime les supports dans l'écriture traditionnelle et ajouter l'opérateur ~,!, +, - ~ function () {alert ('hello');} () ;! function () {alert ('hello');} (); + function () {alert ('hello');} (); - function () {alert ('hello');} ();Ces méthodes d'écriture ne sont pas différentes des méthodes traditionnelles mentionnées ci-dessus.
J'ai trouvé que le point commun de ces méthodes d'écriture est les opérateurs. En fait, la manière traditionnelle de crochets () appartient également à un type d'opération, qui apparaît dans: a = b * (c + d).
Opérateur + Paramètres transmis à auto-généré = Les fonctions sont automatiquement exécutées? Mais certains symboles ne sont pas non plus pris en charge, comme le signe "=, *, /". La raison pour laquelle il s'exécute est toujours très mystérieuse et il n'y a pas de réponse décente sur Internet.
Ensuite, j'ai découvert un phénomène magique où ces opérateurs peuvent être superposés à l'infini. . . . . .
// La fonction est précédée d'un symbole spécifique qui peut être superposé Infiniment ... ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - + - ~! + - ~ ~ - ~ + - + -! ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~! + - ~~~~~~~~~~~~~~~~ !! +! + - ~~~~~~~~~~~~~~~ !! +! + + - ~~~~~~~~~~~~~
Le programme s'exécute normalement !!!!!!
Cependant, il y a deux situations où des erreurs seront signalées
Si trois symboles "ou plus" ou "-" apparaissent successivement, une erreur se produira;
Si deux symboles "+" ou "-" apparaissent successivement et sont suivis par d'autres symboles, une erreur se produira, telle que "++ ~", "- +";
Invite d'erreur: référence non revêtue: Expression du côté gauche non valide dans le fonctionnement du préfixe (c'est-à-dire l'erreur d'expression gauche)
Ensuite, j'ai utilisé le même symbole pour calculer une variable et j'ai constaté que c'était exactement le même. Cela peut déjà être expliqué que le fonctionnement de JavaScript invite l'exécution automatique de la fonction, ou il peut être compris comme appelant cette fonction à travers des opérations!
Ce n'est pas que la fonction s'exécute, mais que cette fonction est appelée à travers les opérations! , mais seules certaines méthodes de calcul sont prises en charge!
De plus, cette fonction auto-exécutée peut ne pas être une fonction anonyme! En regardant le code ci-dessus, j'ai défini le nom de fonction a dans la fonction après l'opérateur, et il n'y a pas eu d'exception, mais c'était inutile - -!, Cela ne peut toujours pas être appelé par d'autres méthodes, mais je pense qu'il est un peu inapproprié pour beaucoup de gens de l'appeler une fonction anonyme!
Ce qui précède est une brève analyse du principe de la fonction anonyme de JavaScript auto-exécutant (function () {}) () présenté par l'éditeur. J'espère que ce sera utile à tous!