立即执行函数其实就是函数的调用。
形如(function(){ ... })()
(function(){ ... }())
要理解函数表达式、函数声明、以及匿名函数
函数声明 function funName() {}
函数表达式 var funName = function(){}
调用函数的方式都为funName(),需要用函数名进行调用。
匿名函数 function(){} 是没有函数名的函数声明
所以我们平时看到的(function(){ ... })()其实就是对函数的调用,在函数体外后面加括号实现立即调用;
(function(a) {
console.log(a); //使用()运算符,打印出123
})(123);
使用立即执行函数的原因是。当解析器解析js代码时,优先解析函数声明并使其在执行其他代码是可以使用,而函数表达式需要等到解析器执行到他所在的代码行时才会执行