JavaScript对象解构可用冒号重命名属性,如{firstName:name};支持默认值{prop:newName=def}和嵌套重命名{a:{b:c}},但不可同层混用同名与重命名。

在 JavaScript 对象解构中,可以通过 冒号 + 新变量名 的语法为属性指定一个全新的变量名,而不是使用默认的属性名。
基本语法:用冒号重命名解构出来的属性
当对象属性名不便于直接用作变量名(比如含特殊字符、是保留字,或想避免命名冲突),就可以在解构时用 : 明确指定新变量名:
-
{ originalProp: newVarName }—— 把originalProp的值赋给newVarName - 左边是对象中的属性名(必须准确匹配),右边是你要声明的新变量名
例如:
const user = { firstName: 'Alice', lastName: 'Smith', 'user-id': 123 };<br>const { firstName: name, lastName: surname, 'user-id': userId } = user;<br><br>console.log(name); // 'Alice'<br>console.log(surname); // 'Smith'<br>console.log(userId); // 123
配合默认值一起使用
重命名的同时也能设置默认值,写法是:{ originalProp: newVarName = defaultValue }:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
立即学习“Java免费学习笔记(深入)”;
- 如果原属性不存在或值为
undefined,就使用默认值 - 注意:默认值只对
undefined生效,不覆盖null、0、false等 falsy 值
示例:
const data = { title: 'JS Guide' };<br>const { title: bookTitle = 'Untitled', author: writer = 'Anonymous' } = data;<br><br>console.log(bookTitle); // 'JS Guide'<br>console.log(writer); // 'Anonymous'
嵌套对象中重命名也一样适用
即使属性在深层嵌套里,只要路径正确,依然可以用冒号重命名:
- 解构路径保持点号或括号写法,重命名写在最后冒号后
- 支持混合使用:重命名 + 默认值 + 嵌套解构
示例:
const response = {<br> data: {<br> user: { id: 42, name: 'Bob' }<br> }<br>};<br><br>const { data: { user: { id: userId, name: userName } } } = response;<br>console.log(userId); // 42<br>console.log(userName); // 'Bob'
注意事项
- 重命名不是“改名”,只是创建新变量引用原值;原对象本身不受影响
- 属性名含短横线、空格等非法标识符时,必须用引号包裹(如
'user-id'),且只能出现在冒号左边 - 不能把重命名和同名解构混用在同一层,比如
{ name, name: fullName }会报错(重复声明)

















