“!function(){}”在javascript中的含义是什么?

What does “!function () {}” mean/do in javascript?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
What does the exclamation mark do before the function?
! preceding function in javascript?
javascript function leading bang ! syntax

我最近在javascript中看到了这种模式:

1
2
3
!function () {
    // do something
}()

什么是function关键字前面的爆炸应该做什么? 我似乎无法在intertubez上找到任何关于它的信息。


1
2
3
function () {
    // do something
}();

这是一个立即调用的函数声明。 无法立即调用函数声明; 这是一个语法错误。

为了解决这种语法错误,大多数人将IIFD包含在parens中以迫使它成为表达式(IIFE)。

1
2
3
(function () {
    // do something
})();

在这种情况下,他们添加了感叹号。