立即执行函数

立即执行函数:

一般是函数长度过长,而且只执行一次。

针对初始化功能的函数

形式

形参和实参


立即执行函数也有预编译过程

立即执行函数写法:

1,(function (){}())   w3c建议第一种

2,(function (){})()

看下面:

这是一个函数,一般我们在控制台调用函数的时候,直接使用test();就可以了,因为我们使用的方法是test加括号

那么我现在在函数声明之后直接加括号,能不能运行呢?

事实说明是不行的

这是因为只有表达式才能够被执行符号(括号)执行

123;也是叫表达式

上面的式子是函数声明,不是表达式

在看下面

这样就可以了

这是因为上面那个式子是函数表达式,不是函数声明,之前有讲过,函数声明的方式总的有两种,一种是函数声明,一种是函数表达式,虽然都可以声明函数,但其实作用是不一样的

接下来再看刚才的那个函数,

发现函数被立即执行之后,test就不再代表函数了

所以说,能被立即执行符号执行的表达式,再被立即执行之后,就变成了立即执行函数

我们说上面那个是函数声明,那么现在,在前面加一个正号

发现其变成了立即执行函数

同理,-  , !,&&(要能运行到函数) ,|| (同上)

最后我们也知道括号也算数学计算符,

所以如下:

(function test(){})

先使用一对括号将函数声明变成表达式,

(function test(){})()

然后再使用一对括号,将其执行,

我们再精简一下,把后面的括号放里面

先执行外面的括号,变成表达式,然后再执行里面的表达式

然后我们发现,test在使用之后就没有任何意义了,

所以我们把test去掉,就变成了我们现在的立即执行函数

在看下面的情况:

这是由于括号会将函数变为表达式,就变成了立即执行函数,然后f执行完之后,就消失了,所以变成了undefined

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值