函数定义有三种方式:1. 函数声明具有提升特性,可在声明前调用;2. 函数表达式赋值给变量,常用于回调,不具完全提升;3. 箭头函数语法简洁,无自身this,适合回调但不可作为构造函数。

JavaScript中函数定义主要有三种方式,每种方式在使用场景和特性上略有不同。下面分别介绍。
1. 函数声明(Function Declaration)
这是最常见和传统的函数定义方式,使用 function 关键字后跟函数名和参数。
语法:
function myFunction(param) {
return "Hello " + param;
}
特点:
v63积分商城特色功能:支持三种物品类型的发放1.实物:实物领取需要填写收货信息:2.虚拟:可以自定义用户领取需要填写的信息3.卡密:自动发放,后台能够查看编辑卡密状态支持三种种物品发放方式1.兑换:2.拍卖3. 抽奖兑换拍卖信息可以以帖子的形式自动发布当设定了“兑换拍卖自动发帖版块“ ID时,发布商品会自动在改ID版块生成帖子用户兑换或者出价后都会以跟帖的
- 具有函数提升(hoisting),在代码执行前会被提升到作用域顶部,因此可以在声明前调用。
- 必须有函数名。
- 不能出现在表达式或条件语句中(受限于语法位置)。
2. 函数表达式(Function Expression)
将函数赋值给一个变量,函数可以是匿名的,也可以有名字。
语法:
const myFunction = function(param) {
return "Hello " + param;
};
也可以使用具名函数表达式:
const myFunction = function namedFunc(param) {
return "Hello " + param;
};
特点:
- 不会被完全提升,变量名提升但函数体不提升,因此不能在赋值前调用。
- 更灵活,常用于回调、立即执行函数等场景。
- 适合动态赋值和模块化编程。
3. 箭头函数(Arrow Function)
ES6 引入的新语法,使用 => 定义函数,更简洁。
语法:
const myFunction = (param) => {
return "Hello " + param;
};
单参数可省略括号,单行返回可省略花括号:
const myFunction = param => "Hello " + param;
特点:
- 没有自己的 this、arguments、super 或 new.target,继承自外层作用域。
- 不能用作构造函数(不能使用 new 调用)。
- 语法简洁,适合写回调函数。
基本上就这些。根据需求选择合适的方式:需要提升用函数声明,写回调推荐函数表达式或箭头函数,注意 this 指向问题。不复杂但容易忽略细节。









