JavaScript数组解构默认值仅在对应项为undefined时生效,支持跳过中间项、rest参数及嵌套结构,默认值可为表达式或函数调用。

在 JavaScript 数组解构中,可以通过在变量后使用 = 操作符直接设置默认值,当对应位置的元素为 undefined(注意:不包括 null、0、'' 等 falsy 值)时,就会启用该默认值。
基础语法:为解构变量指定默认值
默认值只在被解构的数组该项不存在或为 undefined时生效。例如:
-
const [a = 1, b = 2] = [];→a是1,b是2(空数组,两项都为undefined) -
const [a = 1, b = 2] = [5];→a是5,b是2(第二项缺失) -
const [a = 1, b = 2] = [5, undefined];→a是5,b是2(显式传入undefined) -
const [a = 1, b = 2] = [5, null];→a是5,b是null(null不触发默认值)
跳过中间项并为后续项设默认值
用逗号占位可跳过不需要的元素,仍可为后面的变量设默认值:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
-
const [, , c = 'default'] = ['a', 'b'];→c为'default'(前两项存在,第三项缺失) -
const [x, , y = 'y'] = ['x'];→x是'x',y是'y'
结合 rest 参数与默认值
rest 元素(...rest)本身不能直接设默认值,但可以对 rest 后面的变量或嵌套解构设默认值。更常见的是先用 rest 收集剩余项,再单独处理:
立即学习“Java免费学习笔记(深入)”;
-
const [first = 'none', ...rest] = [];→first是'none',rest是[] - 若想给
rest设“空数组”默认值,其实无需额外操作——它天然就是[](当无剩余项时) - 需要深层默认值?可嵌套:
const [a = 1, [b = 10, c = 20] = []] = [5];→a=5,b=10,c=20
实际应用建议
默认值适合处理接口返回数据结构不稳定、参数可选等场景。注意三点:
- 仅
undefined触发默认值,null、false、0、''都会原样赋值 - 默认值支持表达式甚至函数调用:
const [x = Math.random()] = []; - 避免过度嵌套默认值,影响可读性;复杂逻辑建议先解构再条件判断

















