- 当我们需要取一些层级比较深的的数据同时每一层数据不一定存在时,通常的手法:
const data = {}
const name = data && data.userInfo && data.userInfo[0] && data.useInfo[0].name
使用 ?. 可以做到这样:
const data = {}
const name = data?.userInfo?.[0]?.name
- 当我们需要给一些不存在的数据一个替换值 || 初始值 的时候,通常的手法:
let a
a = a || 'init'
// 或者
if(!a) {
a = 'init'
}
使用 ??= 可以做到这样:
let a
a ??= 'init'
// !!注意,不合规的条件是 a 为 null 或者 undefined
let a = 0
a ??= 'init'
console.log(a) // 0
- 一些 ??= 不符合的场景,我们可以问问 ||= 可不可以做到:
let a = 0
a ||= 'init'
console.log(a) // init
// 注意了集美们, 不合规的条件是: 任何 falsy 值(undefined null '' NaN 0 等等)
falsy 值表
4、&&= 我就不用说了吧,自己领会
let a = 1
a &&= '2'
console.log(a) // 2
今日份学习完成
网友评论