[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 此預設值。