JavaScript函数参数支持对象解构赋值,可直接提取字段、设默认值、重命名、嵌套解构及用...rest收集剩余属性,提升简洁性与健壮性。

JavaScript 中可以通过函数参数的解构赋值,直接从传入的对象中提取所需字段,既简洁又可读性强。
基础用法:在形参中直接解构对象
无需先接收整个对象再手动取值,可在函数定义时直接对参数进行对象解构:
function greet({ name, age }) {
console.log(`你好,${name},今年${age}岁`);
}
greet({ name: '小明', age: 25 }); // 你好,小明,今年25岁
这里 { name, age } 就是解构语法,表示从第一个实参(必须是对象)中提取 name 和 age 属性作为局部变量。
设置默认值防 undefined
若某些字段可能缺失,可在解构时指定默认值,避免运行时错误:
function createUser({ username = 'guest', role = 'user', isActive = true } = {}) {
return { username, role, isActive };
}
createUser({ username: 'admin' }); // { username: 'admin', role: 'user', isActive: true }
createUser(); // { username: 'guest', role: 'user', isActive: true }
注意末尾的 = {}:它为整个参数提供默认空对象,防止传入 undefined 导致解构报错。
将后端 Java 接口文档转换为前端 TypeScript 类型定义(interface / type)。输入:飞书文档、Spring Boot 接口文档、Swagger/OpenAPI、手写 API 文档等。输出:包含请求参数与响应结果的 .md 文件,含完整 JSDoc 注释。触发关键词:Java 转 TS、接口转换、生成前端类型、接口文档转 TypeScript、DTO/VO/BO 转 interface、后端文档转前端类型、生成接口类型、类型定义生成。
重命名字段与嵌套解构
当需要改名或访问深层属性时,解构仍可胜任:
-
重命名:
{ title: bookTitle }表示取对象的title属性,存为变量bookTitle -
嵌套解构:
{ author: { name: authorName, age } }可直接提取嵌套对象中的字段
function showBook({
title: bookTitle,
author: { name: authorName, bio = '暂无介绍' }
}) {
console.log(`${bookTitle} 作者:${authorName} —— ${bio}`);
}
showBook({
title: 'JavaScript 高级程序设计',
author: { name: 'Nicholas C. Zakas' }
});
// 输出:JavaScript 高级程序设计 作者:Nicholas C. Zakas —— 暂无介绍
配合剩余属性收集未解构字段
用 ...rest 可捕获未被显式解构的其他属性:
function logUser({ id, name, ...others }) {
console.log('ID:', id, '姓名:', name);
console.log('其余信息:', others); // 如 { email, phone, avatar }
}
logUser({ id: 101, name: '李四', email: 'lisi@example.com', phone: '138...' });
此时 others 是一个新对象,包含除 id 和 name 外的所有属性(浅拷贝)。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










