在 JavaScript 中,可以通过两种方式来定义函数:函数声明和函数表达式。
函数声明使用 function 关键字进行定义,并且在整个作用域中都可用。
函数声明的方式:
function calcAge1(birthYear) {
return 2037 - birthYear;
}
const zhangSanAge = calcAge1(1998);
console.log(zhangSanAge);
函数表达式的方式:
函数表达式是将函数作为值赋给一个变量的方式进行定义,并且只有在其定义之后才能被调用。
const peopleAge = function calcAge1(birthYear) {
return 2037 - birthYear;
}
const zhangSanAge = peopleAge(2000);
console.log(zhangSanAge);
注意:使用函数表达式必须要先进行函数初始化,然后才能去调用函数;但是声明函数的当时不需要,因为声明函数是全局的
const zhangSanAge = peopleAge(2000);
const peopleAge = function calcAge1(birthYear) {
return 2037 - birthYear;
};
console.log(zhangSanAge);
这样就会报错;
函数声明和函数表达式的区别:
- 函数声明在整个作用域中可用,而函数表达式只在其定义之后可用。
- 在函数声明中,函数名是必需的,而在函数表达式中,函数名是可选的。
- 由于函数表达式返回一个函数值,因此可以将其作为参数传递给其他函数或者返回函数作为另一个函数的结果,而函数声明则不允许这样做。
因此,在选择使用函数声明还是函数表达式时,需要根据特定的需求和场景进行选择。通常情况下,如果需要在整个作用域中使用函数,则使用函数声明,如果需要将函数作为值进行操作,则使用函数表达式。