箭头函数支持参数解构,可直接在括号内写{ name, age }等模式,需加括号避免被误解析;支持默认值、别名、嵌套解构(中间层需设{}默认值)及剩余属性...rest。

在箭头函数中使用对象解构作为参数,可以直接在参数列表里写解构模式,省去函数体内再解构的步骤,让代码更简洁清晰。
基础写法:直接在参数位置解构
把原本需要在函数体里写的 const { name, age } = obj,提前到参数括号里:
- 普通写法:
obj => { const { name, age } = obj; return name + age; } - 解构简写:
({ name, age }) => name + age
注意:括号不能省略,因为 { name, age } => ... 会被解析成函数体(带代码块),不是参数解构。
支持默认值和别名
解构参数可以像普通解构一样设默认值、重命名:
立即学习“Java免费学习笔记(深入)”;
- 默认值:
({ name = '匿名', age = 0 }) => `${name} ${age}` - 别名:
({ name: nickname, age: years }) => `${nickname}今年${years}岁` - 混合使用:
({ name: n = '游客', level: lv = 1 }) => `用户${n},等级${lv}`
嵌套解构也适用
如果对象有深层结构,可以在参数中直接解构嵌套属性:
({ user: { name, profile: { city } } }) => `${name}来自${city}`- 配合默认值防报错:
({ user: { name = '未知', profile: { city = '未填写' } = {} } = {} }) => ...
注意嵌套解构时,中间层级也要提供默认空对象(= {}),避免访问 undefined.profile 报错。
结合剩余属性提取其他字段
用 ...rest 捕获未被解构的其余属性:
({ id, name, ...others }) => ({ id, name, metadata: others })- 适合封装 API 请求参数,只取关键字段,透传其余配置
剩余属性必须放在解构末尾,且不能与已解构的键重复。


















