只有表达式才能被执行函数执行,所以会有以下几种写法
(function(){
console.log(1)
})()
(function(){
console.log(1)
}()) //这个是W3C推荐的写法
+function(){
console.log(1)
}() //因为这个函数前面多了一个+号。所以就变成了表达式。也就可以被执行
-function(){
console.log(2)
}() //同上
function test() {
console.log(1)
}() //这个不能执行!!!因为这不是表达式,而是一个函数声明
function(a, b, c, d) {
console.log(1)
}(1, 2, 3, 4) //这个不会执行,但是也不会报错。因为编译器会认为(1, 2, 3, 4)不是执行符号,所以不会做任何处理。
网友评论