日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

谈谈 JavaScript 中的空值合并操作符 Nullish coalescing operator

發(fā)布時間:2023/12/19 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 谈谈 JavaScript 中的空值合并操作符 Nullish coalescing operator 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

空值合并運算符 (??) 是一個邏輯運算符,僅當左側(第一個參數(shù))為空或未定義時才返回運算符(第二個參數(shù))的右側。 在所有其他情況下,它返回第一個參數(shù)。

下列這兩行測試代碼,分別輸出 Hello 和 132

因此,正如您在上面的示例中看到的那樣,返回 Hello 是因為 undefined 位于運算符的左側。 如果 null 代替 undefined,結果將是相同的。 在第二個示例中,如果第一個參數(shù)中存在除 null 或 undefined 以外的任何內容,則操作員不會檢查第二個參數(shù),而是會立即打印第一個值。

在空值合并操作符被加入 ECMAScript 2020 之前,每當我們想為變量賦予默認值時,我們使用 OR (||) 邏輯運算符。 但是使用 OR 運算符有一些潛在的問題: || 運算符并不區(qū)分 false、0、“” 和 null/undefined。 所有這些都被 OR 運算符判定為返回 false,所以如果它遇到任何這些作為第一個參數(shù),那么我們將得到第二個參數(shù)作為結果,這使得 OR 運算符的可信度降低。

下圖顯示了 ?? 和 || 這兩個操作符的差異:

遇到 0,|| 會返回右邊的操作數(shù) 100,而因為 0 既不是 undefined 也不是 null,因而 0 ?? 100 會返回 0.

關于 ?? 的優(yōu)先級問題

?? 運算符僅比 MDN 文檔中給出的優(yōu)先級表中的 OR 運算符低一位。 這意味著它將在 = 和三元運算符之前以及 + 和 * 等運算符之后進行評估。

為了提高代碼可讀性,在使用 ?? 時請?zhí)砑有±ㄌ?#xff1a;

SAP Spartacus 的實現(xiàn)中也有大量 ?? 的用法,如下圖所示:

更多Jerry的原創(chuàng)文章,盡在:“汪子熙”:

總結

以上是生活随笔為你收集整理的谈谈 JavaScript 中的空值合并操作符 Nullish coalescing operator的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。