对象解构赋值可通过“属性名=默认值”设置默认值,仅当属性值为undefined时生效;嵌套解构需先为子对象设默认空对象再设内层默认值;重命名与默认值可结合使用,格式为“原名: 新名=默认值”;函数参数解构默认值需为整个参数设默认空对象。

对象解构赋值时,可以通过在属性名后加 = 和默认值来设置默认值,即使原对象中该属性不存在或为 undefined,也会使用默认值。
基础语法:直接写默认值
在解构时,在变量名后用 = 指定默认值即可:
const obj = { name: 'Alice' };
const { name, age = 25 } = obj;
console.log(name); // 'Alice'
console.log(age); // 25(因为 obj 中没有 age 属性)
注意:只有属性值为 undefined 时才会触发默认值;若属性存在且值为 null、0、false 或空字符串,默认值不会生效。
嵌套对象解构时设默认值
对深层属性设默认值,需配合子对象的解构结构:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
立即学习“Java免费学习笔记(深入)”;
- 先给嵌套对象本身设默认空对象(避免解构
undefined报错) - 再在内层解构中设具体属性的默认值
const user = { profile: { name: 'Bob' } };
const {
profile = {},
profile: { name, avatar = 'default.png' }
} = user;
console.log(name); // 'Bob'
console.log(avatar); // 'default.png'
结合重命名与默认值
重命名(用 oldName: newName)和默认值可以一起用,顺序是:先重命名,再写默认值:
const data = { title: 'Hello' };
const { title: headline = 'Untitled' } = data;
console.log(headline); // 'Hello'
const empty = {};
const { title: fallback = 'No title' } = empty;
console.log(fallback); // 'No title'
函数参数中的对象解构默认值
常用于配置项,让调用更灵活:
function connect({ host = 'localhost', port = 3000, secure = false } = {}) {
console.log(`Connecting to ${secure ? 'https' : 'http'}://${host}:${port}`);
}
connect(); // 使用全部默认值
connect({ host: 'api.example.com' }); // 只覆盖 host,其余仍用默认
注意:函数参数整体也要设默认值 = {},否则传入 undefined 会解构失败。

















