?? 以及 || 以及 ?.

2021-07-19  本文已影响0人  陈大事_code

一、?? 与 || 的区别

// ||
let a = ''
a = null
a = false
a = null
a = undefined

let c = a || 2      //  c = 2

上面五种都可以造成a||2短路

// ??
let a = null
a = undefined

let b = 0

let c = a ?? 2 // c = 2

c = b ?? 3 // c = 0

只有a为null/undefined时,才会短路,否则返回左侧值

二、?.(可选链)

// 1.对象使用
let obj = { a: 'cc'}
obj?.c // undefined
obj?.a // 'cc'
obj?.['b'] // undefined 该方法属性为变量可以使用

// 2.数组使用
let arr = [1,2,3]
arr?.[1] // 1为下标

// 3.函数使用
let obj1 = {
    fnc: val => {
        console.log('i am', val)
    }
}
obj1?.fna?.() // undefined
obj1?.fnc?.('cc') // i am cc
上一篇 下一篇

猜你喜欢

热点阅读