JavaScript嵌套解构支持重命名与默认值,语法为{原名: 新名 = 默认值},默认值须在冒号右侧且仅对undefined生效;嵌套时每层可独立设置;数组可通过{0: a, 1: b = 'x'}模拟重命名;函数参数同理。

JavaScript 中连续解构赋值(即嵌套解构)时,可以同时重命名变量和设置默认值,关键在于理解解构语法的层级结构和赋值规则。
基本语法:重命名 + 默认值要写在冒号右侧
解构时用 原名: 新名 实现重命名;默认值用 = 值 写在重命名之后。注意:默认值必须放在整个属性解构项的最右边,不能写在冒号左边。
-
正确写法:
{ count: totalCount = 0 }—— 从对象取count,重命名为totalCount,若原值为undefined则用0 -
错误写法:
{ count = 0: totalCount }或{ count: totalCount = 0, name: userName }(后者没问题,但默认值只对当前项生效)
嵌套对象中逐层重命名并设默认值
对深层嵌套对象解构时,每一层都可独立重命名和设默认值。默认值只在对应层级的属性为 undefined 时生效,null、0、false 等“falsy”值不会触发默认值。
- 示例:
const { user: { name: userName = '匿名', age: userAge = 18 } = {} } = data; - 说明:先从
data解构出user对象,并设其默认值为{}(防止data.user为undefined导致报错),再对user内部解构并重命名+设默认值
数组与对象混合解构时的重命名和默认值
数组解构本身不支持重命名(因为是按索引取值),但可通过对象解构包装来实现类似效果;也可结合剩余元素和默认值灵活处理。
立即学习“Java免费学习笔记(深入)”;
- 常见技巧:把数组当作对象解构,例如
const { 0: first, 1: second = '无' } = arr;—— 取索引 0 重命名为first,索引 1 重命名为second并设默认值 - 注意:这种写法要求
arr是类数组或有对应数字键的对象(如真实数组支持)
函数参数中的连续解构重命名与默认值
函数形参直接解构时,同样适用上述规则,且更常用于配置对象传参场景。
- 示例:
function init({ api: apiUrl = '/api', timeout: requestTimeout = 5000 } = {}) { ... } - 说明:
= {}是给整个参数对象设默认值,避免传入undefined报错;内部再对属性重命名并设各自默认值


















