[javascript] 雙問號運算子 nullish coalescing operator
?? (nullish coalescing operator)
用法
// pseudocode,大概示意,非完整 code
const items = ["abc", "", 123, 0, true, false, null, undefined];
{items.map(item => {
return (
{`${item} ?? '找不到 item'`}
);
})}
|
| 結果圖 |
情境
有一個 data 回傳值如下,且 true、false 在程式內都可能用到
data: { isTeacher: false }
如果預設值為 false,那使用 || 或是 ?? 都是沒有問題
data.isTeacher || false //output: false data.isTeacher ?? false //output: false
但如果預設值為 true,那這時候使用 ?? 才會正確,或是用 || 並配合額外處理的 code
data.isTeacher || true //output: true data.isTeacher ?? true //output: false
|| (or operator)
用法
// pseudocode,大概示意,非完整 code
const items = ["abc", "", 123, 0, true, false, null, undefined];
{items.map(item => {
return (
{`${item} || '找不到 item'`}
);
})}
|
| 結果圖 |
情境
|| 就大部分情況都在使用,像回傳值為 undefined,就直接使用「 data.count || 0 」,就能得到 0 此預設值。


留言
張貼留言