javascript解构默认值仅在对应值严格等于undefined时生效;数组中写在变量名后,对象中写在属性名后,嵌套需逐层设默认值,函数参数中可结合使用。

解构默认值在 JavaScript 中用于为解构出的变量提供后备值,只在对应位置的值严格等于 undefined 时生效,null、0、false、空字符串等“假值”都不会触发默认值。
数组解构默认值怎么设
数组解构中,默认值写在变量名后,用 = 连接。它只对 undefined 位置起作用:
-
const [a = 1, b = 2] = [10];→a是10,b是2(第二个位置为空,即undefined) -
const [x = 1] = [null];→x是null(null !== undefined,不触发默认值) -
const [first, , third = 'default'] = ['a', 'b'];→third得到'default'(跳过第二个元素,第三个位置是undefined)
对象解构默认值怎么设
对象解构中,默认值同样写在属性名后,仅当该属性不存在或值为 undefined 时启用:
-
const { name = '匿名', age = 18 } = { name: '张三' };→name是'张三',age是18 -
const { role = 'user' } = { role: null };→role是null,不是'user' - 可结合重命名:
const { username: name = '游客' } = {};→name为'游客'
嵌套解构里怎么设默认值
嵌套结构需逐层设置默认值,每层都得单独声明:
-
const { user: { name = '未知', role = 'guest' } = {} } = {};→ 外层user缺失时,先给它一个空对象{},再解构其内部属性并设默认值 -
const { data: { list = [] } = {} } = response;→ 防止response.data为undefined导致报错 - 错误写法:
{ user: { name = '默认' } }没给user设默认值,若user为undefined,会直接报错
函数参数里怎么用解构默认值
把解构和函数参数默认值组合,能写出更清晰的配置型接口:
- 基础写法:
function fetchUser({ id, timeout = 5000, method = 'GET' } = {}) { ... } - 混合普通参数:
function createUser(id, { name = '新用户', tags = [] } = {}) { ... },id必填,其余可选 - 注意:默认值只作用于被解构的字段,不会自动合并对象。比如传入
{ name: '李四' },tags仍用默认值[],但不会继承其他未传属性
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











