????最近開發(fā)剪芥,對(duì)0判定為false真的深惡痛絕垄开,經(jīng)常因?yàn)?的原因一不小心就判斷錯(cuò)誤了。
????當(dāng)有地方需要判斷空字符串的同時(shí)税肪,又要排除0的干擾溉躲,讓Number類型的0跳過判斷,就不得不寫一長(zhǎng)串的判斷 如(a !=='undefined' && a !== null? )諸如此類的判斷從而佢跳過0益兄、‘’(空字符串)锻梳、false的判斷。
????但最近看到Null 判斷運(yùn)算符(??)這個(gè)的時(shí)候才感覺省了不少事净捅。對(duì)這個(gè)運(yùn)算符疑枯,我看別人是這么解釋的 :讀取對(duì)象屬性的時(shí)候,如果某個(gè)屬性的值是null或undefined蛔六,有時(shí)候需要為它們指定默認(rèn)值荆永。常見做法是通過||運(yùn)算符指定默認(rèn)值。 它的行為類似||国章,但是只有運(yùn)算符左側(cè)的值為null或undefined時(shí)具钥,才會(huì)返回右側(cè)的值。
如下:
1 液兽、const a = 0 ( ' '? 骂删、false )
const b = a ?? ' 前面判斷不成立 '
console.log(b)? ?// 0 ( ' ' 、false)
2 四啰、? const a = undefined/null
const b = a ?? ' 前面判斷不成立 '
console.log(b)? //? '?前面判斷不成立?'
? ? 總而言之宁玫,用這個(gè)空值合并操作符能方便的排除null/undefined的判斷,讓Number0正常走正確判斷邏輯拟逮!