Es ist eine Abkürzung oder Alternative von selbstaufrufenden anonymen Funktion :
%Vor%Kann geschrieben werden:
%Vor% Sie können auch +
anstelle von !
verwenden.
Wenn du es einfach getan hast:
%Vor% Das wird zu Problemen führen, deshalb müssen Sie !
davor einfügen, was die Funktionsdeklaration in Funktionsausdruck .
Artikel zitieren, Abschnitt 12.4:
Ein ExpressionStatement kann nicht mit dem Schlüsselwort function starten, weil das könnte es mit einer FunctionDeclaration mehrdeutig machen.
Um das Konzept besser zu verstehen, sollten Sie Folgendes überprüfen:
Sie negieren das Ergebnis, nicht die Funktion selbst:
%Vor%In Wirklichkeit ist es eine leicht komprimierte Form von:
%Vor%, da 1 Zeichen weniger benötigt wird. Der Grund dafür ist, dass Sie eine Funktionsdeklaration nicht direkt aufrufen können, z. Das ist ungültig:
%Vor% aber das Hinzufügen der !
am Anfang verwandelt es in eine Funktion expression
und macht es funktioniert.
Normalerweise wird es verwendet, um eine Eigenart in der JavaScript-Syntax zu umgehen. Dies führt zu einem Syntaxfehler:
%Vor% Es wird als Funktionsdeklaration (wie function foo () {}
) statt als Funktionsausdruck gelesen. Also fügt das hinzu! davor oder in Klammern, zwingt den Parser zu verstehen, dass es ein Ausdruck ist.
Tags und Links javascript