JavaScript对象解构重命名的正确写法是原属性名:新变量名,如const {name: userName} = obj;冒号左为字面量键名,右为合法标识符;可结合默认值写作原名:新名=默认值;嵌套时重命名仅作用于当前层级。

JavaScript对象解构中重命名属性,使用 原属性名: 新变量名 的语法,冒号前是对象中的实际键名,冒号后是你要声明的局部变量名。这是标准且唯一的写法,必须严格遵循。
基本语法格式
重命名解构的核心结构为:
const { originalKey: newVarName } = obj;</li> <li><code>let { count: totalCount } = data;</li> <li><code>const { user: currentUser, id: userId } = response;
注意:冒号左侧必须是字面量属性名(或字符串形式的键),不能是表达式;右侧是合法的标识符,作为新变量名使用。
与默认值结合使用的写法
重命名后仍可设置默认值,但默认值要写在新变量名之后,用等号连接:
立即学习“Java免费学习笔记(深入)”;
const { name: userName = 'anonymous' } = user;-
const { status: httpStatus = 200, code: errorCode } = res;(errorCode没有默认值,httpStatus有)
顺序不可颠倒:必须是 原名: 新名 = 默认值,不能写成 原名 = 默认值: 新名,后者语法错误。
嵌套对象中重命名的注意事项
在嵌套解构中,重命名只作用于当前层级的属性名,不影响内部结构:
-
const { profile: { name: fullName, age: userAge } } = userData;→ 将userData.profile.name赋给fullName,userData.profile.age赋给userAge - 不能直接写
{ profile: userInfo }来重命名整个profile对象,除非你明确想把profile整体赋给userInfo,此时没有深层解构
若需同时重命名并解构嵌套对象,推荐分步或使用括号明确层级,避免可读性下降。
常见错误与规避方式
以下写法均不合法:
-
const { 'first-name': firstName } = user;→ 键含特殊字符时必须加引号,但解构中带引号的字符串不能直接用于重命名(会报语法错误);应改用计算属性或先解构再赋值 -
const { [key]: value } = obj;→ 计算属性名在解构左侧不支持重命名,仅支持静态键名 -
const { name: 'userName' } = user;→ 右侧必须是变量名,不能是字符串
遇到动态键或带连字符的键(如 first-name),建议用传统点号或方括号访问,或先用解构获取父对象再取值。










