javascript解构赋值默认值仅对undefined生效,数组中各位置单独设值,对象中各属性后用=指定,嵌套需提供空对象防错,支持函数调用等动态值。

JavaScript 中可以用解构赋值为多个变量设置默认值,语法简洁且可读性强。关键在于在解构模式中,为每个变量(或属性)单独指定默认值,而不是统一设置一个默认对象。
数组解构:为每个位置单独设默认值
数组解构时,默认值写在等号右侧的对应位置,只在该位置元素为 undefined 时生效(null、false、0、'' 等“falsy”值不会触发默认值)。
例如:
const [a = 1, b = 2, c = 3] = [null, undefined, 0];
console.log(a, b, c); // null 2 0
说明:
• a 是 null → 不是 undefined,不使用默认值;
• b 是 undefined → 使用默认值 2;
• c 是 0 → 不是 undefined,保留原值。
对象解构:为每个属性设默认值
对象解构更常用,默认值直接写在属性名后,用 = 连接。同样只对 undefined 生效。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
例如:
const { x = 10, y = 20, z = 30 } = { x: 0, y: undefined };
console.log(x, y, z); // 0 20 30
也可以嵌套使用:
const { user: { name = '匿名', age = 18 } = {} } = { user: null };
console.log(name, age); // '匿名' 18
注意:
• 内层解构前加 = {} 是为了防止 user 为 null 或 undefined 导致报错;
• 默认值可以是表达式、函数调用,甚至其他变量(只要作用域内可访问)。
混合解构 + 动态默认值
默认值支持运行时计算,适合需要条件逻辑的场景:
- 用函数生成默认值:
const [a = getDefaultA(), b = getDefaultB()] = arr; - 依赖前面已解构的变量:
const { base = 10, offset = base * 2 } = obj;(注意:对象解构中不能直接跨属性引用,但可在解构后立即计算;若需强依赖,建议分步或用临时对象) - 结合剩余参数:
const [first = 'none', ...rest] = []; // first='none', rest=[]
常见陷阱提醒
• 默认值只对 undefined 触发,不是所有“空值”;
• 解构失败(如对 null 或 undefined 解构对象)会抛错,需配合空值检查(如 ?? 或提前提供默认空对象);
• 函数参数解构也支持默认值:function fn({ a = 1, b = 2 } = {}) { ... },这里外层的 = {} 很关键,防止传入 undefined 报错。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










