JavaScript中的函数声明和函数表达式有何不同?

7 min read

函数声明和函数表达式都能创建函数,但是有一些区别。

函数声明:使用 function 关键字和一个函数名来声明函数。

function add(a, b) {
  return a + b;
}

函数表达式:使用 function 关键字和一个变量名或表达式来声明函数,可以存储到变量中。

const add = function(a, b) {
  return a + b;
}

主要区别有两点:

  • 变量提升:函数声明会被视为代码的一部分,因此它们被提升到所在作用域的顶部。这意味着可以在声明之前调用函数。相反,函数表达式必须在使用之前被赋值。
  • 匿名函数:函数表达式可以是匿名的,也就是说,它们可以没有函数名。

通常,使用函数声明可以使代码更清晰、更易于阅读。但是,在需要将函数存储到变量中或创建闭包时,使用函数表达式会更有用。