JavaScript 中对象解构时指定默认值

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

JavaScript 中对象解构时指定默认值

刘哇勇   2021-04-19 我要评论

待解构字段为原始值

正常情况下,

const obj = {
  a: 1,
  b: 2,
};

const { a, b } = obj;
console.log(a, b); // 1 2

当被解构字段缺失时,

const obj = {
  a: 1,
};

const { a, b } = obj;
console.log(a, b); // 1 undefined

此时可在解构时使用 = 指定默认值:

const obj = {
  a: 1,
};

const { a, b = 2 } = obj;
console.log(a, b); // 1 2

解构时指定别名

你甚至可以在解构字段的同时为其重命名,

const obj = {
  a: 1,
  b: undefined
}

const { a, b: c = 2 } = obj;
console.log(a, c) // 1 2

上述过程其实为:

  • 创建变量 c
  • 获取 obj.b 并赋值给 c
  • 如果 obj.bundefined,则将指定的默认值 2 赋值给 c

上面的过程等同于:

const c = obj.b || 2

待解构字段为对象

考察如下的对象:

const obj = {
  innerObj: {
    a: 1,
    b: 2
  }
}

正常情况下可通过如下的形式解构以得到内层的字段:

const obj = {
  innerObj: {
    a: 1,
    b: 2,
  },
};

const {
  innerObj: { a, b = 2 },
} = obj;

console.log(a, b); // 1 2

但如果里面嵌套的对象缺失时,上面的解构会报错:

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们