美文网首页
全网最易懂版:什么是立即执行函数?有什么作用?

全网最易懂版:什么是立即执行函数?有什么作用?

作者: 杭州_前端_求内推 | 来源:发表于2020-03-13 00:26 被阅读0次

2020年3月12日
《每日一题系列🚀》
作者:王二狗
博客:掘金思否知乎简书CSDN
点赞再看,养成习惯,每日一题系列会一直更新下去,你们的支持是我持续分享的最大动力😘

什么是立即执行函数?

要成为立即执行函数,需要满足两个条件:

  • 声明一个匿名函数
  • 立马调用这个匿名函数

比如,下面就是一个非常典型的立即执行函数:

(function(){console.log('这是一个立即执行函数'))()

//首先声明一个匿名函数(function(){console.log('这是一个立即执行函数'))
//然后再匿名函数的后面接一对括号(),立马调用这个函数

大多数小伙伴不理解的可能是为什么要把匿名函数用一对括号包起来。

其实,这么做的目的是为了兼容JS的语法。

除了使用一对括号之外,我们还可以使用下面的语法:

(function(){alert('我是匿名函数')} ()) 
(function(){alert('我是匿名函数')}) ()
!function(){alert('我是匿名函数')}() 
+function(){alert('我是匿名函数')}()
-function(){alert('我是匿名函数')}()
~function(){alert('我是匿名函数')}()
void function(){alert('我是匿名函数')}()
new function(){alert('我是匿名函数')}()

立即执行函数有什么作用?

立即执行函数的作用只有一个,那就是创建独立的作用域
让外部无法访问作用域内部的变量,从而避免变量污染

比如下面的代码,我们就可以使用立即执行函数让for循环输出的值是16,而不是66

for(var i=0; i<6; i++){
  !function(i){//这个i是独立作用域里面的i
        console.log(i)//这个i是独立作用域里面的i
    }
  }(i)//这个i是for循环中的i
}

上面的代码之所以输出的结果是16,而不是66,是因为我们每次都将for循环中的i单独赋值给了for循环内部的i

每一次for循环内i值变化的时候,我们都立即执行函数在for循环内部创建了一个独立的作用域,所以最终输出的结果是16

很多小伙伴在看这段代码的时候都容易被里面的i值所混淆,其实两个i并不是同一个值。

下面的代码会让你更加容易理解:

for(var i=0; i<6; i++){
  !function(j){
    console.log(j)
  }(i)
}

告诫自己,即使再累也不要忘记学习,成功没有捷径可走,只有一步接着一步走下去。 共勉!

文章中如有不对的地方,欢迎小伙伴们多多指正。

谢谢大家~ 💘

相关文章

  • 全网最易懂版:什么是立即执行函数?有什么作用?

    2020年3月12日《每日一题系列?》作者:王二狗博客:掘金、思否、知乎、简书、CSDN 点赞再看,养成习...

  • lesson20 JS作用域链 & JS引用类型

    第 1 题 立即执行函数表达式是什么?有什么作用? 1. 立即执行函数是什么 立即执行函数就是 声明一个匿名函数 ...

  • javascript作用域和作用域链

    立即执行函数表达式是什么?有什么作用? 立即执行函数就是 声明一个匿名函数 马上调用这个匿名函数 立即执行函数有什...

  • 【Javascript】作用域及引用类型

    立即执行函数表达式是什么?有什么作用? 立即执行函数表达式 即执行函数(Immediate Functions)立...

  • 作用域链&引用类型

    1、立即执行函数表达式是什么?有什么作用? (function(){函数体})()即为立即执行函数,就是将一个匿名...

  • 立即执行函数

    本文涉及知识点 什么是立即执行函数? 立即执行函数有什么用? 什么是立即执行函数? 立即执行函数就是: 声明一个匿...

  • JS Task4

    1. 立即执行函数表达式是什么?有什么作用? 立即执行函数就是声明一个匿名函数马上调用这个匿名函数 那么为什么还要...

  • JS函数以及作用域问题

    1.立即执行函数表达式是什么?有什么作用 立即执行函数表达式就是 声明一个匿名函数 马上执行这个匿名函数 典型写法...

  • JS-task3

    立即执行函数表达式是什么?有什么作用 (function (){})()作用: 令函数中声明的变量绕过变量声明前置...

  • 什么是立即执行函数,它有什么作用?

    一:什么是立即执行函数? 声明一个函数,并马上调用这个匿名函数就叫做立即执行函数;也可以说立即执行函数是一种语法,...

网友评论

      本文标题:全网最易懂版:什么是立即执行函数?有什么作用?

      本文链接:https://www.haomeiwen.com/subject/ukonjhtx.html