Skip to content

可选链和空值合并运算符

可选链

  • 优化多层次对象下,寻找某个属性的写法
js
// 有以下对象
const user = {
    address: {
        street: 'xx街道',
        getNum() { return '80号' }
    }
}

以前的写法

js
const street = user && user.address && user.address.street
const num = user && user.address && user.address.getNum && user.address.getNum()

==可选链写法==

js
const street = user?.address?.street
const num = user?.address?.getNum?.()

空值合并运算符

  • 逻辑操作符,当左侧的操作数为 null 或者 undefined 时,返回其右侧操作数,否则返回左侧操作数

  • 用于取代 || 左边值是隐式错时取不到左边值的问题

js
console.log( 0 ?? 5 ) // 0
console.log( null ?? 5 ) // 5