Funktionen sind das flexibelste Objekt in JavaScript. Hier erklären wir nur den Zweck seiner anonymen Funktionen. Anonyme Funktionen beziehen sich auf Funktionen, die keine Funktionsnamen oder Zeiger angeben. Selbst ausführende anonyme Funktionen sind nur eine von ihnen. Das Folgende heißt diese Funktion: Self-Executing-Funktion.
Hier ist eine der häufigsten Selbstversorgungsfunktionen:
// traditionelle anonyme Funktion (function () {alert ('Hallo');}) ();Der Ausführungseffekt dieses Code besteht darin, aufzutauchen, wenn die Seite neu geladen wird: "Hallo"
Was fordert es auf, automatisch auszuführen? siehe den folgenden Code
// Entfernen Sie die Klammern in traditionellem Schreiben und fügen Sie den Operator hinzu ~,!,+,-~ function () {alert ('hello');} ();! Function () {alert ('hello');} ();+function () {achert ('Hallo';} ();Diese Schreibmethoden unterscheiden sich nicht von den oben genannten traditionellen Methoden.
Ich fand, dass der gemeinsame Punkt dieser Schreibmethoden Operatoren sind. Tatsächlich gehört die traditionelle Art von Klammern () auch zu einer Art von Operation, die in: a = b*(c+d) erscheint.
Operator + Parameter übergeben an selbstgenerierte = Funktionen werden automatisch ausgeführt? Einige Symbole werden jedoch auch nicht unterstützt, wie das "=, *, /" -Schild. Der Grund, warum es sich selbst ausführt, ist immer noch sehr mysteriös und es gibt keine anständige Antwort im Internet.
Dann entdeckte ich ein magisches Phänomen, bei dem diese Bediener unendlich überlagert werden können. . . . . .
// der Funktion geht ein bestimmtes Symbol voraus, das überlagert werden kann unendlich ... ~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~! ~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+ -~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~! +-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+- ~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+ -~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~!+-~! +-~!+-~~~~~~~~~~~~~~ !!+!+-~~~~~~~~~~~~~ pro!+!+!+-~~~~~~~~~~~
Das Programm läuft normal !!!!!!
Es gibt jedoch zwei Situationen, in denen Fehler gemeldet werden
Wenn drei oder mehr "+" oder "-" Symbole in Folge erscheinen, tritt ein Fehler auf;
Wenn zwei "+" oder "-" Symbole in Folge erscheinen und von anderen Symbolen folgen, tritt ein Fehler auf, wie "++ ~", "-+";
Fehlereingabeaufforderung: Unbekundetes ReferenzError: Ungültiger Ausdruck der linken Seite in der Präfixoperation (was den linken Expressionsfehler bedeutet)
Dann habe ich das gleiche Symbol verwendet, um eine Variable zu berechnen, und stellte fest, dass es genau gleich war. Dies kann bereits erklärt werden, dass der Betrieb von JavaScript die automatische Ausführung der Funktion auffordert, oder sie kann als Aufruf dieser Funktion durch Vorgänge verstanden werden!
Es ist nicht so, dass die Funktion sich selbst ausführt, sondern dass diese Funktion durch Operationen aufgerufen wird! , aber nur einige Berechnungsmethoden werden unterstützt!
Darüber hinaus ist diese Selbstversorgungsfunktion möglicherweise keine anonyme Funktion! Wenn ich mich den obigen Code ansah, habe ich den Funktionsnamen A in der Funktion nach dem Operator definiert, und es gab keine Ausnahme, aber es war nutzlos - -!, Dies kann immer noch nicht von anderen Methoden aufgerufen werden, aber ich denke, es ist für viele Menschen ein bisschen unangemessen, es eine anonyme Funktion zu nennen!
Das obige ist eine kurze Analyse des Prinzips der anonymen Funktion von JavaScript selbst exekutierender anonymer Funktion (function () {}) (), die Ihnen vom Editor vorgestellt wurde. Ich hoffe, es wird für alle hilfreich sein!