JavaScript函数参数支持对象和数组解构赋值:对象解构可提取属性、设默认值、用别名、处理嵌套;数组解构可按位置取值、跳过元素、捕获剩余项;还可混合解构与剩余参数实现灵活扩展。

JavaScript 中函数参数可以通过解构赋值直接提取对象或数组的内部属性,让函数签名更简洁、意图更清晰。
对象参数解构:直接取属性值
当传入的是一个对象时,可在参数位置直接用花括号 {} 解构,无需先接收整个对象再手动取值。
- 基础写法:
function getUser({ name, age }) { console.log(name, age); } - 支持默认值:
function getConfig({ timeout = 5000, retries = 3 } = {}) { ... }(注意:等号右边的 = {} 防止传入 undefined 报错) - 支持别名:
function printUser({ name: fullName, email: addr }) { console.log(fullName, addr); }
嵌套对象解构:一层或多层深入
若对象有深层结构,解构可直接展开嵌套路径。
你接手一个需求时,是不是经常这样:"改一个小字段 → 结果把不相关的代码也改了"、"需求说得很模糊 → 做着做着发现跑偏了"、"数据库加个字段 → 上线才发现漏了数据兼容"、"做了个新功能 → 一个月后自己都忘了当时怎么设计的"、"写到一半被中断 → 再回来不知道从哪继续";这个 Skill 就是专门解决这些问题的。 它会自动探测你的项目环境(JDK、Spring Boot、ORM、数据库、前端框架),记在
- 例如:
function logLocation({ coords: { lat, lng } }) { console.log(lat, lng); } - 支持默认嵌套对象:
function initMap({ center: { lat = 0, lng = 0 } = {} } = {}) { ... }(两层默认值都需设空对象兜底)
数组参数解构:按位置取元素
适用于传入数组且关心特定索引位置的场景。
立即学习“Java免费学习笔记(深入)”;
- 基本用法:
function showFirstTwo([a, b]) { console.log(a, b); } - 跳过中间项:
function getFirstAndLast([first, , , last]) { return [first, last]; } - 剩余元素:
function sumFirst(...[first, ...rest]) { return first + rest.reduce((s, x) => s + x, 0); }
混合解构与剩余参数
可以结合解构与 ... 剩余参数,兼顾明确字段和灵活扩展。
function createPost({ title, content }, ...tags) { return { title, content, tags }; }- 也可对对象使用剩余:
function logExceptId({ id, ...rest }) { console.log(rest); }

















