空值合并運算符 (??) 提供了一種簡潔的方法來為 null 或未定義的變量提供默認值:
~~~
const result = variable ?? defaultValue;
~~~
這段代碼使用了JavaScript的空值合并操作符(Nullish Coalescing Operator)。它的含義是,如果`variable`的值為`null`或`undefined`,則返回默認值`defaultValue`;否則返回`variable`的值。
比如,考慮以下示例:
```javascript
const username = getUsername() ?? "Guest";
```
在上述代碼中,我們嘗試調用`getUsername()`函數來獲取用戶名。如果`getUsername()`函數返回`null`或`undefined`,則使用默認值`"Guest"`,否則使用函數返回的值。
需要注意的是,空值合并操作符與邏輯或操作符有所不同。在JavaScript中,空字符串、數字0、布爾值false等值會被視為假值,因此使用邏輯或操作符判斷變量是否為空值可能會產生意外的結果。而空值合并操作符只有在變量值為`null`或`undefined`時才會返回默認值。
空值合并操作符也是ES2020中新增的語法特性,在一些舊版本或不支持該特性的環境下,代碼可能會出現語法錯誤。因此,在實際開發中,你需要根據項目要求和目標環境來決定是否使用空值合并操作符。
- Js方法速查表
- Js 代碼片段
- Js中類型判斷
- 判斷類型函數
- 處理 null、NaN 和 undefined 的 JS 代碼片段
- 檢查是否為null
- 檢查undefined
- 檢查 NaN
- 如果為 null 或undefined則默認為某個值
- 如果為 NaN,則默認為一個值
- 檢查值是否為 null、undefined或 NaN
- 可選鏈接(?.)
- 空合并運算符(??)
- 將 null 或 undefined 轉換為布爾值
- 將 NaN 轉換為布爾值
- 處理函數參數中的 null 或 undefined
- 從數組中刪除 null 或undefined的值
- 檢測:是否是一個函數
- 函數:是否屬于異步函數
- 檢測:是否為一個安全數組
- 檢測:對象是否為一個安全對象
- 字符串相關方法
- 字符串填充:padStart 和 padEnd
- 字符串反轉:reverse
- 第一個字母大寫:toUpperCase
- 字符串數組分割:擴展運算符
- 使用多個分隔符分割字符串
- 檢查字符串是否包含:includes
- 檢查字符串的開頭或結尾是否有特定序列:startsWith 和 endsWith 方法
- 字符串替換:正則或replaceAll
- 數字:截斷數字
- 數字:四舍五入
- 數字:補零
- 數組相關方法
- 數組:找到最接近的數值
- 數組:生成數組
- 數組:打亂數組
- 數組:簡單數據去重
- 數組:唯一值數據去重
- 數組:多數組取交集
- 數組:查找最大值索引
- 數組:查找最小值索引
- 數組:壓縮多個數組
- 對象相關方法
- 對象:刪除無效屬性
- 對象:反轉對象鍵值
- 對象:字符串轉對象
- 比較兩個對象
- Js中判斷空對象
- 正則表達式
- 正則:手機號格式化
- 正則:去除多余空格
- 正則:每千位添加分隔符
- 正則:校驗6到18位大小寫字母數字下劃線組成的密碼
- 日期相關的方法
- 日期:判斷日期是否為今天
- 日期:日期轉換
- 日期:秒數轉換
- 日期:獲取某年某月的第一天
- 日期:獲取某年某月的最后一天
- 日期:獲取某年月份天數
- 本地存儲相關方法
- 獲取cookie
- BOM相關
- Web:重新加載當前頁面
- Web:滾動到頁面頂部
- Web:元素滾動
- Web:檢查當前是否IE瀏覽器
- Web:從給定文本中剝離html
- 常用高頻方法
- 防抖/節流
- 進制轉換
- 復制文本
- 過濾特殊字符
- 隨機顏色生成
- 將16進制的顏色轉換成rgb
- 將 RGB 轉換為十六進制
- 獲取隨機ip
- uuid:需要生成一個id
- 強制等待
- Ts 代碼片段
- omit函數