Skip to content

[js] 第112天 函数声明与函数表达式有什么区别? #1031

Open
@haizhilin2013

Description

@haizhilin2013

第112天 函数声明与函数表达式有什么区别?

Activity

Clearives

Clearives commented on Aug 6, 2019

@Clearives

函数声明会函数提升,将函数声明提升到作用域最上层,而函数表达式必须赋值完成了才能调用。

EragonBubble

EragonBubble commented on Aug 6, 2019

@EragonBubble

函数声明

function fn() {
///...
}

函数表达式

const aa = function() {
///...
}

区别:
1.函数声明,函数名必须有,在函数表达式中可以省略函数名
2.函数声明会被预解析,函数表达式不会

AnsonZnl

AnsonZnl commented on Aug 6, 2019

@AnsonZnl
Contributor

最大的区别就是函数声明会提升至作用域的顶端,函数表达式则会在赋值之后能调用。

nowherebutup

nowherebutup commented on Aug 6, 2019

@nowherebutup
  • 函数声明: 声明+赋值
  • 函数表达式: 声明,代码执行到此处才会赋值,所以在此之前,函数不能被调用
xiaoqiangz

xiaoqiangz commented on Jul 5, 2022

@xiaoqiangz

函数声明: 作用域会提升
function fn() {}
函数表达式:只有代码执行到该处后,函数才能被调用
var fn = function() {}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    jsJavaScript

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @haizhilin2013@Clearives@xiaoqiangz@EragonBubble@AnsonZnl

        Issue actions

          [js] 第112天 函数声明与函数表达式有什么区别? · Issue #1031 · haizlin/fe-interview