立即执行函数--IIFE (Immediately Invokable Function Expressions》
IIFE是我们经常遇到的,IIFE是在函数声明后立即调用的函数表达式,也就是大家说的闭包
# 两种写法模式
(function(){
consoloe.log("我是打印君");
})()
(function(){
console.log("我是打印君!")
}())
# 结果:我是打印君
这样写的好处有哪些呢?
1、不需要为函数命名,执行完成之后就自动销毁了,防止了污染全局变量
2、闭包会形成单独的作用域
也是可以传参数的,具体代码如下
(function(str){
console.log(str)
})("我是打印君!")
# 结果:我是打印君
在其他的情况下,我也会看到在function
前面加!
+
-
运算符,这些运算符都将函数声明转成函数表达式,javascript引擎会识别,并且是立即执行的函数
!function(){
console.log("我是打印君!")
}()
+function(){
console.log("我是打印君!")
}()
-function(){
console.log("我是打印君!")
}()