链式取值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;
}