js中?.与??的使用

最近遇到神奇的代码,大家猜猜下边代码是什么意思呢?

res?.data?.list?.name ?? '小李'


话不多说,来解释一下

1、?.的含义

res?.data?.list?.name等价于res&&res.data&&res.data.list&&res.data.list.name

当res/res.data/res.data.list任意一项是null或undefined时都会返回null或undefined,否则返回res.data.list.name

2、??的含义

?? 运算符称为 null /undefined合并运算符,用于定义可以为 null /undefined值的类型和引用类型的默认值。如果此运算符的左操作数不为 null/undefined,则此运算符将返回左操作数(左边表达式);否则当左操作数为 null/undefined,返回右操作数(右边表达式)

你可能感兴趣的:(js中?.与??的使用)