函数声明和函数表达式都能创建函数,但是有一些区别。
函数声明:使用 function
关键字和一个函数名来声明函数。
function add(a, b) { return a + b; }
函数表达式:使用 function
关键字和一个变量名或表达式来声明函数,可以存储到变量中。
const add = function(a, b) { return a + b; }
主要区别有两点:
- 变量提升:函数声明会被视为代码的一部分,因此它们被提升到所在作用域的顶部。这意味着可以在声明之前调用函数。相反,函数表达式必须在使用之前被赋值。
- 匿名函数:函数表达式可以是匿名的,也就是说,它们可以没有函数名。
通常,使用函数声明可以使代码更清晰、更易于阅读。但是,在需要将函数存储到变量中或创建闭包时,使用函数表达式会更有用。