La fonction est l'objet le plus flexible de JavaScript. Nous expliquons ici uniquement l'utilisation de ses fonctions anonymes. Les fonctions anonymes font référence à des fonctions qui ne spécifient pas de nom de fonction ou de pointeur. Les fonctions anonymes auto-exécutables ne sont que l'une d'entre elles. Ce type de fonction est appelé ci-dessous : fonction auto-exécutable
Ce qui suit est la plus courante. fonction auto-exécutable :
// 传统匿名函数 (function() { alert('hello'); })();
L'effet d'exécution de ce code est d'apparaître lorsque la page est rechargée : "bonjour"
Qu'est-ce qui l'invite à s'exécuter automatiquement ? , regardez le code suivant
// 在传统写法上去掉小括号,并在前面加上运算符 ~,!,+,- ~function(){ alert('hello'); }(); !function(){ alert('hello'); }(); +function(){ alert('hello'); }(); -function(){ alert('hello'); }();
Il n'y a aucune différence entre ces méthodes d'écriture et la méthode traditionnelle mentionnée ci-dessus
J'ai trouvé que le dénominateur commun de ces méthodes d'écriture est l'opérateur. En fait Les parenthèses traditionnelles () sont aussi un type d'opération, apparaissant dans : a=b*(c d),
L'opérateur est passé au paramètre auto-généré = la fonction est automatiquement exécutée ? Mais certains symboles ne sont pas pris en charge, comme "=, *, /". La raison de son auto-exécution est encore très mystérieuse, et je ne trouve pas de réponse décente sur Internet
Puis j'ai découvert. un phénomène magique. Ces opérateurs peuvent être empilés à l'infini. . . . . .
// function前面是特定符号可以无限叠加... ~!+-~!+-+-!~!+-~!+-+-!~!+-~!+-+-!~!+-~!+-+-!~!+-~!+-+-!~!+-~!+-+-!~!+-~!+-+-!~!+-~!+-+-!~!+-~!+-+-!~!+-~!+-+-!~!+-~!+-+-!~!+-~!+-+-!~!+-~!+-+-!~!+-~!+-+-!~!+-~!+-+-!~!+-~!+-+-!~~~~~~~~+-!!!!!!+function a(b) { alert('hello'); }();
Le programme fonctionne normalement !!!!!!
Cependant, il existe deux situations dans lesquelles une erreur sera signalée
Si trois ou plus " " ou "apparaissent successivement -", une erreur se produira;
Si deux symboles " " ou "-" apparaissent dans une rangée et sont suivis d'autres symboles, une erreur se produira, comme "~", "--";
Message d'erreur : Uncaught ReferenceError : expression de gauche non valide dans l'opération de préfixe (ce qui signifie que l'expression de gauche est fausse)
Ensuite, j'ai utilisé le même symbole pour opérer une variable et a constaté qu'elle était exactement la même. Cela peut être possible. Cela signifie que le fonctionnement de JavaScript provoque l'exécution automatique de la fonction, ce qui peut également être compris comme un appel à cette fonction par opération !
Ce n'est pas que la fonction s'exécute toute seule, mais la fonction est appelée par calcul ! , mais ne prend en charge que certaines méthodes de calcul !
De plus, cette fonction auto-exécutable ne peut pas être une fonction anonyme ! En regardant le code ci-dessus, j'ai défini le nom de la fonction a dans la fonction après l'opérateur. Il n'y a pas d'exception, mais cela ne sert à rien - -!, ce a ne peut toujours pas être appelé par d'autres méthodes, mais je pense que beaucoup de gens l'appellent. it Il y a quelque chose qui ne va pas avec le fait qu'il s'agisse d'une fonction anonyme !
Ce qui précède est une brève analyse des principes des fonctions anonymes auto-exécutables Javascript (function() { })() introduites par l'éditeur. J'espère que cela sera utile à tout le monde !
Pour plus d'articles sur les principes des fonctions anonymes auto-exécutables Javascript (function() { })(), veuillez faire attention au site Web PHP chinois !