?. and ?? 用法

2021-10-24  本文已影响0人  small_zeo

一. 可选链操作符( ?. )

const adventurer = {
  name: 'Alice',
  cat: {
    name: 'Dinah'
  }
};

const dogName = adventurer.dog?.name;
console.log(dogName);
// expected output: undefined

console.log(adventurer.someNonExistentMethod?.());
// expected output: undefined
let result = someInterface.customMethod?.();

如果希望允许 someInterface 也为 null 或者 undefined ,那么你需要像这样写

someInterface?.customMethod?.()
let nestedProp = obj?.['prop' + 'Name']
let arrayItem = arr?.[42]

二. 空值合并操作符(??)

只有当左侧为null和undefined时,才会返回右侧的数

const foo = null ?? 'default string';
console.log(foo);
// expected output: "default string"

const baz = 0 ?? 42;
console.log(baz);
// expected output: 0
上一篇下一篇

猜你喜欢

热点阅读