链式取值optional-chaining

2020-05-22  本文已影响0人  如此行走

Optional-Chaining 操作符是一个二元操作符, 其含义为: 如果其左值为 null/undefined, 则整体返回 undefined; > 否则返回其右值。
就是为了减少这样的操作

const city =
  apiResult &&
  apiResult.office &&
  apiResult.office.primary &&
  apiResult.office.primary.city;

实现这样的:

// 例子 17-1

const obj = {
  foo: {
    bar: {
      baz: 42,
    },
  },
};

const baz = obj?.foo?.bar?.baz; // 42

使用情景:

// Optional Chaining 的语法有三种使用场景:

obj?.prop       // optional static property access
obj?.[expr]     // optional dynamic property access
func?.(...args) // optional function or method call

简单来说,代码片段:

let name = movie.director?.name;
// 相当于
let name;
if (movie.director != null) {
  name = movie.director.name;
}
上一篇下一篇

猜你喜欢

热点阅读