有没有人知道这样定义的代码:
!function(window, undefined) {
// do something
} (window)
通过在谷歌搜索,我可以理解如下语法:
function(window, undefined) {
// do something
} (window)
但我不知道任何关于语法的文章都有“!”操作
答案 0 :(得分:3)
!
运算符在那里,因此该函数被解析为表达式,而不是声明。由于无法调用声明,因此您的第二个示例是语法错误。
更常见的形式是将函数括在括号中:
(function(window,undefined) {
// do something
}(window));
与使用任何一元运算符具有完全相同的效果。
答案 1 :(得分:0)
可能是这样的。
!(function(window, undefined){ /* some code */ })(window);
(function(window, undefined){ /* some code */ })(window);