Lig*_*ica 3

在 JavaScript 中,您可以一次性声明并执行一个函数,但这样做是这样的:

function() { /* ... */ }();
Run Code Online (Sandbox Code Playgroud)

是一个语法错误。

您可以通过强制解析器将函数声明识别为表达式的一部分而不是语句来使其工作:

(function() { /* ... */ }());
Run Code Online (Sandbox Code Playgroud)

您看到的是执行此操作的另一种方法,即使用!运算符。它会否定函数的结果,但在这里,该结果(如果有的话)无论如何都会被忽略。

!function() { /* ... */ }();
Run Code Online (Sandbox Code Playgroud)

换句话说,这有点像黑客。


进一步阅读: