对象解构是JavaScript引擎按名匹配并自动提取属性值的操作,支持重命名、默认值(仅undefined或属性不存在时生效)和嵌套解构,不修改原对象。

对象解构不是“魔法”,它本质是 JavaScript 引擎在赋值时做的一次按名匹配 + 自动提取操作——就像你拿着一张带标签的取货单,去仓库里找对应标签的箱子,直接把里面的东西搬进自己准备好的抽屉里。
它其实是在模拟“手动点属性”的过程
比如有这个对象:
const user = { name: '李四', age: 28, city: '杭州' };传统写法要这么取值:
const name = user.name;const age = user.age;
const city = user.city;
对象解构 { name, age, city } = user 干的事完全一样,只是引擎帮你:
→ 看左边有哪些变量名(name / age / city)
→ 到右边对象里按名字找同名属性
→ 找到就赋值,没找到就给 undefined
重命名(用冒号)就是换标签
当你写 { name: fullName, age },相当于说:“把叫 name 的那个箱子,贴上新标签 fullName,再搬进来;age 标签不变,照常搬。”
这不涉及复制对象或改变原对象,只是在“搬运途中”给变量换个名字。
DMap GL地图JSAPI(dmapgl)开发指南。用于编写、审查、调试 DMap 地图 API 代码,涵盖地图初始化、覆盖物渲染、图层管理、事件处理、控件交互等任务。当用户提及 dmap、dmapgl、jsapi‑gl 或相关地图开发需求时自动触发。
默认值只在属性缺失或值为 undefined 时生效
比如:
const { name = '游客', role = '普通用户' } = { name: '王五' };→ name 有值,不触发默认
→ role 属性根本不存在,所以直接用默认值
注意:null、0、false 都算“有值”,不会触发默认——只有 undefined 或属性压根没定义才算“空”。
嵌套解构其实是多层“拆箱”
面对:
const data = {user: {
profile: { name: '赵六', level: 5 }
}
};
写 { user: { profile: { name } } } = data,等于分三步:
→ 先从 data 拆出 user
→ 再从 user 拆出 profile
→ 最后从 profile 拆出 name
每一步都是按名查找,没断掉就继续,任一环节找不到,对应变量就是 undefined。

















