函数表达式与函数声明之间的区别

函数声明与函数表达式的区别一直没有搞清楚,现在就来梳理一下

定义一个函数,又是三种方法:

  • 函数声明

  • 函数表达式

  • 通过new function构造函数(这种用来生成对象,与题目无关,略)

接下来我们回到主题,函数声明与函数表达式的区别在哪里?

区别:

  • 形式不同;
函数声明:
function  declaration(){
    console.log('这是函数声明')
}
函数表达式:
var expression = function(){
    console.log('这是函数表达式')
}
  • 函数声明可以省略标识符(函数名),但是函数表达式必须要有标识符(函数名)

函数表达式省略标识符(函数名)的情况你肯定见过:

function (){
    console.log('这是函数声明')
}

但是函数表达式省略标识符(函数名)的情况你见过吗:

var  = function(){
    console.log('这是函数表达式')
}

肯定没见过吧。

  • 函数声明要提前(最大区别)

函数声明是在预执行期执行的,就是说函数声明是在浏览器准备执行代码的时候执行的。因为函数声明在预执行期被执行,所以到了执行期,函数声明就不再执行(人家都执行过了自然就不再执行了)。

    原文作者:架构
    原文地址: https://www.jianshu.com/p/6a331bad7ee0
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞