Javascript中自执行的匿名函数

最近开发的系统用到很多的JS,而页面的逻辑大多也用JS进行处理,自己也一直在学习这方面的内容。今天分享一下最近学习到的自执行匿名函数,首先什么是自执行的匿名函数呢? 它是指形如这样的函数: (function {// code})();这样的代码见得多,但是为什么会自执行却从来没有想过。我就对代码进行一点点修改:function {// code}();运行报错,那为什么(function {// code})();可以被执行, 而function {// code}();却会报错?

代码运行原理分析

  • 首先, 要清楚两者的区别:
    (function {// code})是表达式, function {// code}是函数声明.
  • 其次, js”预编译”的特点:
    js在"预编译"阶段, 会解释函数声明, 但却会忽略表式.
  • 当js执行到function() {//code}();时, 由于function() {//code}在”预编译”阶段已经被解释过, js会跳过function(){//code}, 试图去执行();, 故会报错;
    当js执行到(function {// code})();时, 由于(function {// code})是表达式, js会去对它求解得到返回值, 由于返回值是一 个函数, 故而遇到();时, 便会被执行.

本博客所有文章如无特别注明均为原创

如果觉得对你有帮助,可以通过下方打赏对作者表示鼓励

本文采用知识共享署名-非商业性使用-相同方式共享

如若转载,请注明出处:https://www.fangsi.net/1057.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2014年11月14日 11:43
下一篇 2015年8月15日 17:04

相关推荐

发表评论

登录后才能评论