对象解构赋值是javascript中提取对象属性并赋值给变量的简洁写法,支持基础解构、重命名、默认值及嵌套解构,但不支持对undefined层级的安全访问。

对象解构赋值是 JavaScript 中提取对象属性并赋值给变量的简洁写法,能避免重复写 obj.prop,让代码更清晰、更少冗余。
基础用法:按属性名直接解构
只要变量名和对象属性名一致,就能一行完成赋值:
const user = { name: '张三', age: 28, city: '杭州' };
const { name, age } = user; // 直接得到两个变量
console.log(name); // '张三'
console.log(age); // 28
- 解构出来的变量名必须与对象属性名完全相同(区分大小写)
- 没被解构的属性(如
city)不会报错,只是不创建对应变量 - 原对象不受影响,解构只是读取值
重命名变量:用冒号指定新名称
当变量名需要不同于属性名时,用 属性名: 新变量名 语法:
Java项目代码review工具。分析Git变更+完整调用链路上下文,推断业务需求,进行多维度评分和分类汇总,生成完整PRD文档。包含细粒度Java代码审查清单(Null安全、异常处理、Streams、并发、equals/hashCode、资源管理、API设计、性能、MyBatis/ORM、事务边界、SQL/DD...
const { name: userName, age: userAge } = user;
console.log(userName); // '张三'
console.log(userAge); // 28
- 左边是原始属性名,右边是你要声明的变量名
- 适合避免命名冲突,或让变量语义更明确(比如多个对象都有
id,可分别解构为userId、postId)
设置默认值:防止 undefined
如果属性不存在或值为 undefined,可以设定默认值:
const { name, job = '未知职业', level = 1 } = { name: '李四' };
console.log(name); // '李四'
console.log(job); // '未知职业'
console.log(level); // 1
- 默认值只在属性值严格等于
undefined时生效(null、''、0都会保留原值) - 常用于处理接口返回字段可能缺失的情况
嵌套解构:一层或多层对象结构直接展开
对深层嵌套的对象,可以在解构中直接用点号路径语法(实际是嵌套对象字面量):
const data = {
profile: {
info: { nickname: '小王', tags: ['前端', '开源'] }
}
};
const { profile: { info: { nickname, tags } } } = data;
console.log(nickname); // '小王'
console.log(tags); // ['前端', '开源']
- 注意括号不是必须的,但嵌套深时加空格和换行更易读
- 同样支持重命名和默认值,例如:
{ profile: { info: { nickname: nick = '匿名' } } } - 若某一层为
undefined(如profile不存在),会报错;可用可选链 + 空值合并辅助,但解构本身不支持安全导航
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










