JavaScript解构赋值重命名用冒号语法{原名:新名},仅适用于对象;数组不支持直接重命名,需先位置解构再赋值;可与默认值组合{原名:新名=默认值};嵌套解构中每层均可重命名。

JavaScript 解构赋值中重命名变量,核心是用 冒号(:)语法:在解构模式里,把原属性名写在冒号左边,新变量名写在右边。
对象解构中的重命名
当从对象提取属性时,原属性名可能不直观或与其他变量冲突,这时可重命名:
-
语法形式:
{ originalName: newName } - 冒号前是对象中实际存在的属性名,冒号后是你想声明的变量名
- 它不是“赋值”,而是“绑定”——newName 直接获得 originalName 的值
例如:
const user = { name: 'Alice', age: 30 };
const { name: userName, age: userAge } = user;
console.log(userName); // 'Alice'
console.log(userAge); // 30
同时解构、重命名与设置默认值
重命名可和默认值组合使用,格式为:{ originalName: newName = defaultValue }
- 如果 originalName 不存在或为 undefined,newName 就取默认值
- 注意:不能写成
{ originalName: newName } = obj || { originalName: 'default' }—— 那样逻辑不同
示例:
const data = { title: 'JS Guide' };
const { title: docTitle = 'Untitled', author: docAuthor = 'Anonymous' } = data;
console.log(docTitle); // 'JS Guide'
console.log(docAuthor); // 'Anonymous'
数组解构中也能重命名?不支持,但有替代方案
数组解构基于索引,没有属性名,所以 不能直接用冒号重命名。但你可以:
- 先用位置解构出临时变量,再用新名字赋值(简单明了)
- 嵌套解构 + 别名(仅适用于含命名属性的子结构,如对象)
比如:
const arr = ['a', 'b', 'c'];
const [first, , third] = arr; // 跳过第二个,用 first/third 当新名
const newItem = { value: first }; // 后续按需转成对象再解构重命名
嵌套对象解构 + 重命名
深层属性也可一边解构一边重命名,保持链式清晰:
const response = {
data: {
user: { id: 123, profile: { nick: 'Bob' } }
}
};
const {
data: {
user: { id: userId, profile: { nick: userNick } }
}
} = response;
console.log(userId); // 123
console.log(userNick); // 'Bob'
每一层冒号都对应一次重命名,结构虽深,语义明确。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











