1. 程式人生 > 其它 >ES11中的空值合併運算子

ES11中的空值合併運算子

小編在自己的朋友圈和一些論壇中,都有看到一些前端或者後端被js中判斷折磨到起飛,特別是針對空字串和數字0,在js中,以下6種情況是false

  • undefined

  • null

  • false

  • 0

  • NaN

  • ''或""(特別的,當字串中間全是空格的時候,會判斷為true)

為了解決這個痛點,es11中引入空值合併運算子。使用??運算子之前我們為了相容性好一些,會寫這樣的程式碼

const b = 2
const a = b || 5 // 相當於給a一個預設值
console.log(a)  // 2

如果例子中的b的值為以上會判斷為false的情況,上述例子中的值就會出現一些問題,比如

// 例項一
const b = 0
const a = b || 5
console.log(a) // 5

// 例項二
const b = false
const a = b || 5
console.log(a) // 5

// 例項三
const b = ''
const a = b || 5
console.log(a) // 5

針對實際專案中的需求,對於數字0,我們有的時候只是想輸出數字0,而不是數字的預設值,es11這個新特性中,只有值是undefined或者null的時候,才使用預設值,就像這樣

// 例項一
const b = 2
const a = b ?? 6
console.log(a) 
// 2 // 例項二 const b = 0 const a = b ?? 6 console.log(a) // 0 // 例項三 const b = false const a = b ?? 6 console.log(a) // false // 例項四 const b = undefined const a = b ?? 6 console.log(a) // 6 // 例項五 const b = null const a = b ?? 6 console.log(a) // 6

大家還可以掃描二維碼,關注我的微信公眾號,蝸牛全棧