立即执行函数是在函数被声明或者定义后马上执行,其思路就是在函数体后面直接添加括号,如果需要传递参数则直接写在这个括号里面。
(function(x){console.log(x)}(1))
这个结构中不支持箭头函数
(function(x){console.log(x)})(1)
这种方式也支持箭头函数,即:
((x)=>{console.log(x)})(1)
!function(x){console.log(x)}(1)
在function前面加!、+、 -
或者使用void
操作符等到都可以起到函数定义后立即执行的效果,而()、!、+、-、=
等运算符,都将函数声明转换成函数表达式。
注意,这个方式不支持使用箭头函数!
,此外,使用!
来构成的话,这个整体会返回true
,用+-
来构成的话整体返回NaN