在前端開發程序中,我們在設定默認值的時候,會經常用到 || 和 ?? , 但是這兩者有什么區別呢?分別在什么場景下面使用呢,會有哪些坑呢,今天我們來梳理下呢,
|| 的語法作用
console.log(null || 1) //輸出 1
console.log(undefined || 1) //輸出1
console.log(0 || 1) //輸出1
console.log('' || 1) //輸出1
console.log(1 || null) //輸出1
console.log(undefined || '') //輸出''
console.log(undefined || 0) //輸出0
console.log(undefined || null) //輸出null
console.log(null || undefined) //輸出undefined
console.log('' || undefined) //輸出undefined
console.log(0 || undefined) //輸出undefined
在這里可以看出,使用 || 的時候,當第一個值為非0非null非''非undefined的時候,優先取第一個值,而當第一個值是0或''或null或undefined的時候,則優先取第二個引數的值,
?? 的語法作用
console.log(null ?? 1) //輸出 1
console.log(undefined ?? 1) //輸出1
console.log(0 ?? 1) //輸出0
console.log('' ?? 1) //輸出''
console.log(1 ?? null) //輸出1
console.log(undefined ?? '') //輸出''
console.log(undefined ?? 0) //輸出0
console.log(undefined ?? null) //輸出null
console.log(null ?? undefined) //輸出undefined
console.log('' ?? undefined) //輸出''
console.log(0 ?? undefined) //輸出0
在這里可以看出,使用 ?? 的時候,當第一個值為非null非undefined的時候,優先取第一個值,而當第一個值是null或undefined的時候,則優先取第二個引數的值,
|| 和 ?? 的對比總結
對比 || 和 ??后,發現 || 的處理是針對于0或慷訓null或undefined都去獲取后面的默認值,而??則是針對于null或undefined的時候,去獲取后面的默認值,則對應的場景如下:
- 當一個變數值可能為空0或者''的時候,希望最后展示的是默認值的時候,則只能使用 || 來處理
- 當一個變數值可能為null或undefined的時候,希望最后展示的是默認值的時候,則優先使用 ?? 來處理
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/553336.html
標籤:其他
上一篇:HTML5
下一篇:返回列表
