最近遇到神奇的代码,大家猜猜下边代码是什么意思呢?
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,返回右操作数(右边表达式)