立即执行函数
定义:此类函数没有声明,在一次执行过后即释放。适合做初始化工作。
作用:造出一个函数作用域,防止污染全局变量,它既不会提升,也不会污染全局对象,尽量的把功能封装在函数中
首先得知道,
- 只有表达式才能被执行符号执行
- 被执行符号执行的表达式他的名字会被自动忽略
当函数成为一个表达式时,它既不会提升,也不会污染全局对象。将函数变为一个函数表达式的方式之一,将函数用小括号括起来。
然而,这样一来,函数无法通过名称调用。如果书写一个函数表达式,然后将立即调用,该函数称之为立即执行函数 IIFE(Imdiately Invoked Function Expression)。
由于大部分情况下,函数表达式的函数名没有实际意义,因此,可以省略函数名。没有名字的函数,称之为匿名函数
//w3c建议写法:
(function () {
var a = 1,
b = 2,
c = 3;
console.log(a, b, c);
}());
//2.
(function (){
var a = 1,
b = 2,
c = 3;
console.log(a, b, c);
})();
上面说到了只有表达式才能被执行符号执行负责就会报错,但是有这个特殊情况
function test(a, b, c,d) {
console.log(a + b + C + d) ;
}(1,2,3,4);
这里他不会报错,但也不会执行…他会分开执行
function test(a, b, c,d) {
console.log(a + b + C + d) ;
}
(1,2,3,4);
tip:>(免费获取最新完整前端课程关注vx公众号:前端拓路者coder,回复:资料
如果这个文章对你有用的话,欢迎点赞转发关注,让更多的小伙伴看到呀,毕竟分享是一个程序员最基本的美德!!!
如果有不对的请大佬指教)