javascript
谈谈 JavaScript 中的空值合并操作符 Nullish coalescing operator
空值合并運算符 (??) 是一個邏輯運算符,僅當左側(第一個參數)為空或未定義時才返回運算符(第二個參數)的右側。 在所有其他情況下,它返回第一個參數。
下列這兩行測試代碼,分別輸出 Hello 和 132
因此,正如您在上面的示例中看到的那樣,返回 Hello 是因為 undefined 位于運算符的左側。 如果 null 代替 undefined,結果將是相同的。 在第二個示例中,如果第一個參數中存在除 null 或 undefined 以外的任何內容,則操作員不會檢查第二個參數,而是會立即打印第一個值。
在空值合并操作符被加入 ECMAScript 2020 之前,每當我們想為變量賦予默認值時,我們使用 OR (||) 邏輯運算符。 但是使用 OR 運算符有一些潛在的問題: || 運算符并不區分 false、0、“” 和 null/undefined。 所有這些都被 OR 運算符判定為返回 false,所以如果它遇到任何這些作為第一個參數,那么我們將得到第二個參數作為結果,這使得 OR 運算符的可信度降低。
下圖顯示了 ?? 和 || 這兩個操作符的差異:
遇到 0,|| 會返回右邊的操作數 100,而因為 0 既不是 undefined 也不是 null,因而 0 ?? 100 會返回 0.
關于 ?? 的優先級問題
?? 運算符僅比 MDN 文檔中給出的優先級表中的 OR 運算符低一位。 這意味著它將在 = 和三元運算符之前以及 + 和 * 等運算符之后進行評估。
為了提高代碼可讀性,在使用 ?? 時請添加小括號:
SAP Spartacus 的實現中也有大量 ?? 的用法,如下圖所示:
更多Jerry的原創文章,盡在:“汪子熙”:
總結
以上是生活随笔為你收集整理的谈谈 JavaScript 中的空值合并操作符 Nullish coalescing operator的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: qq电话静音了对方能听到吗(PC版官方网
- 下一篇: excel手动换行按什么键?(这个Exc