在js中,只有表达式才被执行
也就是只要转换成表达式就可以执行
(function (){
console.log('0')
}())
以下代码会报错
function fn (){
console.log('0')
}()
//SyntaxError: Unexpected token )
加上一个数学符号就可以将函数声明改成表达式
+function (){
console.log('0')
}()
而立即执行函数也就是加上了一对括号()
(function (){
console.log('0')
}())
//效果等同
(function (){
console.log('0')
})()
因为数学符号的优先级更高,所以执行括号放在内部还是外部都无所谓,即有两种写法