可能重复:
What does the exclamation mark do before the function?
在浏览Emile动画库时,我遇到了一个对我来说不熟悉的function definition style:
!function () {
// do something
}();
我很熟悉:
var foo = function (){}
var foo = function bar(){}
function foo(){}
var foo = function (){}()
或var foo = (function (){})()
上面的代码片段使用立即函数调用(对于变量作用域,我假设),但是!是什么让我失望。 JSLint很满意,所以它必须是犹太教的。它做了什么?