javascript对象解构重命名用{原属性名:新变量名}语法,避免命名冲突且不修改原对象;支持嵌套、默认值,但仅限对象解构,数组解构不支持。

JavaScript 中用解构重命名避免命名冲突,核心就一条:在对象解构时用 {原属性名: 新变量名} 语法。它不改变原对象,只让你在接收值时换一个更安全、更语义化的变量名。
为什么需要重命名
当从对象中提取属性,而目标变量名已在当前作用域中定义(比如函数参数、外部 const、或跟其他数据同名),直接解构会报错或覆盖原有值。例如:
// ❌ 报错:Identifier 'name' has already been declared
const name = '李四';
const user = { name: '王五', age: 28 };
const { name } = user; // 冲突!
标准重命名写法
使用冒号 : 明确区分“源属性”和“目标变量”,结构清晰、无歧义:
-
基础形式:
const { name: userName, age: userAge } = user;→ 提取user.name赋给userName -
混合使用:可部分重命名、部分保留原名:
const { id, name: fullName, email } = user; -
嵌套对象也适用:
const { profile: { city: userCity } } = user;→ 从user.profile.city提取并重命名为userCity
配合默认值防 undefined
重命名的同时还能设兜底值,尤其适合处理 API 返回可能缺失字段的情况:
-
const { timeout: requestTimeout = 5000 } = config;→ 若config.timeout是undefined,requestTimeout自动为5000 const { title: pageTitle = '首页', description: pageDesc = '' } = meta || {};
注意边界情况
重命名只适用于对象解构;数组解构不支持类似写法(如 [a: x] 是语法错误)。另外,重命名不会影响原对象结构,也不会创建新属性——它只是变量绑定的别名机制。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











