关于jquery:javascript自执行语法

javascript self executing syntax

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

有没有人知道这样定义的代码:

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

通过在谷歌搜索,我可以理解如下语法:

1
2
3
function(window, undefined) {
    // do something
} (window)

但我不知道任何关于语法的文章都有"!"运营商。


!运算符在那里,因此函数被解析为表达式,而不是声明。 由于无法调用声明,因此您的第二个示例是语法错误。

更常见的形式是将函数括在括号中:

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

这与使用任何一元运算符具有完全相同的效果。


可能是这样的。

1
2
!(function(window, undefined){ /* some code */ })(window);
(function(window, undefined){ /* some code */ })(window);