前端杂货随记

javascript立即执行函数

2018-01-19  本文已影响1人  程序蜗牛

立即执行函数--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("我是打印君!")
}()
上一篇下一篇

猜你喜欢

热点阅读