亲宝软件园·资讯

展开

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

刘哇勇 人气:0

待解构字段为原始值

正常情况下,

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

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

const obj = {};

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

console.log(a, b); // 

加载全部内容

相关教程
猜你喜欢
用户评论