ES11中的空值合併運算子
阿新 • • 發佈:2021-08-17
小編在自己的朋友圈和一些論壇中,都有看到一些前端或者後端被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
大家還可以掃描二維碼,關注我的微信公眾號,蝸牛全棧