===================================================================
对于不存在的属性,可选链返回的是 undefined
,undefined
是不太友好的,在代码中会存在问题;我们希望当属性不存在的时候,给一个默认值。
但是如果使用三目运算符,好像有点僵硬
// name不存在的时候,用 - 代替
let moveName = movie.actors?.[0]?.name ? movie.actors?.[0]?.name : ‘-’
一个新的提议【双问号】 nullish coalescing operator , 处理 undefined
或 null
的时候,可以给它们默认为特定值。
语法: 变量名 ??
const noValue = undefined;
const value = ‘Hello’;
noValue ?? ‘no value’; // => ‘no value’
value ?? ‘no value’; // => ‘Hello’
【细节拉满】
// name不存在的时候,用 - 代替
let moveName = movie.actors?.[0]?.name ?? ‘-’
================