js 的 ?? 運算符是空值合并運算符,用于獲取兩個表達式中的非空值。它以從左到右的順序評估表達式,先檢查左側表達式的非空值,若非空則返回,若空則返回右側表達式的值。?? 運算符與 || 運算符的區別在于檢查空值和始終返回一個值。它適用于提供默認值、簡化條件語句和避免冗長的 if-else 語句處理空值。
JS 中的 ?? 運算符
什么是 ?? 運算符?
?? 稱為空值合并運算符,用于獲取兩個表達式中的非空值。語法如下:
<code class="javascript">x ?? y</code>
登錄后復制
如何使用 ?? 運算符?
?? 運算符以從左到右的順序對表達式求值:
-
首先評估左側表達式
x
。如果
x
為非空值(不為 null
或 undefined
),則返回 x
的值,而不會評估右側表達式 y
。如果
x
為空值,則評估右側表達式 y
并返回其值。
示例:
<code class="javascript">const name = "John" ?? "Unknown"; // "John" const age = 0 ?? "N/A"; // 0 const empty = null ?? "Empty"; // "Empty" const undef = undefined ?? "Undefined"; // "Undefined"</code>
登錄后復制
?? 運算符與 || 運算符的區別:
?? 運算符與邏輯或運算符(||)相似,但存在以下區別:
?? 運算符檢查空值,而 || 運算符檢查布爾值。
?? 運算符始終返回一個值,而 || 運算符僅在至少一個表達式為真的情況下返回一個值。
何時使用 ?? 運算符?
?? 運算符可用于:
提供默認值,例如在處理可能為 null
或 undefined
的值時。
在條件語句中簡化代碼,例如檢查變量是否為非空值。
避免在處理空值時使用冗長的 if-else
語句。