[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 此預設值。
留言
張貼留言