js中的立即执行函数

js立即执行函数通常用来创建一个独立的作用域并立即执行,常见的形式有小括号,或者一元运算符两种形式.立即函数内定义的任何变量或函数作用域也仅在当前立即函数体内.当然变量要有修饰符,不然就变成了全局变量.

小括号

js引擎会把小括号内解释为表达式,这样就可以定义函数并立即执行了

小括号括起来的匿名/非匿名函数,如果需要传参可以在定义时使用形参,调用小括号内传入实参,当然js函数的特性你也可以不声明形参使用arguments对象.

//使用小括号定义的立即执行函数
(function(){
	...
})()

(function(a,b){
	...
})(a,b)


//当然调用函数小括号也可以在内部
(function(){
	...
}())

(function(a,b){
	...
}(a,b))


//上面的匿名函数也可以是非匿名函数,当然除非是要用到递归调用,一般没必要,这个函数作用域仅在立即执行函数体内

(function test(a,b){
	...
})(a,b)

一元运算符

一元运算符由于优先级原因,js引擎会把一元运算符后的部分解释为表达式,从而起到定义并立即执行的目的.常用的有+,-,!,~等.

形式和上面小括号的一样,只不过把小括号去掉,然后前面加上这些一元运算符即可.

下面随便列举两个,其它形式的自己根据上面类比

~function(a,b){
	
}(a,b)

~function test(a,b){
	
}(a,b)

当然上面的函数定义也可以使用ES6的箭头函数,根据上面的常见形式类比就可以了.

  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值