Maison interface Web js tutoriel Une brève analyse du principe de la fonction anonyme auto-exécutable Javascript (function() { })()

Une brève analyse du principe de la fonction anonyme auto-exécutable Javascript (function() { })()

Jan 04, 2017 pm 04:06 PM

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');
})();
Copier après la connexion

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');
}();
Copier après la connexion

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');
}();
Copier après la connexion

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 !


Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Remplacer les caractères de chaîne en javascript Remplacer les caractères de chaîne en javascript Mar 11, 2025 am 12:07 AM

Remplacer les caractères de chaîne en javascript

Tutoriel de configuration de l'API de recherche Google personnalisé Tutoriel de configuration de l'API de recherche Google personnalisé Mar 04, 2025 am 01:06 AM

Tutoriel de configuration de l'API de recherche Google personnalisé

Exemple Couleurs Fichier JSON Exemple Couleurs Fichier JSON Mar 03, 2025 am 12:35 AM

Exemple Couleurs Fichier JSON

8 Superbes plugins de mise en page JQuery Page 8 Superbes plugins de mise en page JQuery Page Mar 06, 2025 am 12:48 AM

8 Superbes plugins de mise en page JQuery Page

Créez vos propres applications Web Ajax Créez vos propres applications Web Ajax Mar 09, 2025 am 12:11 AM

Créez vos propres applications Web Ajax

Qu'est-ce que & # x27; ceci & # x27; en javascript? Qu'est-ce que & # x27; ceci & # x27; en javascript? Mar 04, 2025 am 01:15 AM

Qu'est-ce que & # x27; ceci & # x27; en javascript?

Améliorez vos connaissances jQuery avec le spectateur source Améliorez vos connaissances jQuery avec le spectateur source Mar 05, 2025 am 12:54 AM

Améliorez vos connaissances jQuery avec le spectateur source

10 feuilles de triche mobiles pour le développement mobile 10 feuilles de triche mobiles pour le développement mobile Mar 05, 2025 am 12:43 AM

10 feuilles de triche mobiles pour le développement mobile

See all articles