最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

TypeScript 中合并運(yùn)算符??

 更新時(shí)間:2026年05月25日 09:49:08   作者:Raink老師  
TypeScript的合并運(yùn)算符??提供了一種處理null/undefined值的簡潔方式,它僅在值為null/undefined時(shí)返回默認(rèn)值,不會將0或空字符串視為空值,適用于函數(shù)參數(shù)默認(rèn)值、對象屬性設(shè)置等場景,下面就來詳細(xì)的了解一下

在 TypeScript 中,合并運(yùn)算符(??) 是一種邏輯運(yùn)算符,用于在變量為 nullundefined 時(shí)提供默認(rèn)值。它讓代碼在處理“空值”場景時(shí)更加簡潔、清晰、可預(yù)測。

一、語法說明

合并運(yùn)算符由兩個(gè)問號組成:

變量 ?? 默認(rèn)值

該運(yùn)算符的邏輯是:如果左側(cè)的值是 null 或 undefined,則返回右側(cè)的默認(rèn)值;否則返回左側(cè)的值本身。

?? 注意:與邏輯或運(yùn)算符(||)不同,??不會0、false 或空字符串 "" 視為“空值”。

二、實(shí)用示例

示例 1:函數(shù)中的默認(rèn)值設(shè)置

以下函數(shù)通過 Nullish 合并運(yùn)算符為 input 參數(shù)設(shè)置了默認(rèn)值 100

function displayValue(input?: number) {
  const value = input ?? 100;
  console.log(value);
}
displayValue();     // 輸出 100
displayValue(50);   // 輸出 50

displayValue() 中未傳入?yún)?shù),inputundefined,因此使用了默認(rèn)值 100。而在傳入 50 時(shí),使用的是實(shí)際值。

示例 2:對象屬性默認(rèn)值設(shè)置(常用于 JSON)

當(dāng)從 JSON 或其他外部數(shù)據(jù)源獲取對象時(shí),某些字段可能缺失??梢允褂??? 為這些屬性設(shè)定默認(rèn)值。

interface Settings {
  volume?: number;
  brightness?: number;
}
const userSettings: Settings = {
  volume: 0
};
const volume = userSettings.volume ?? 50;
const brightness = userSettings.brightness ?? 75;
console.log(`Volume: ${volume}`);         // 輸出 Volume: 0
console.log(`Brightness: ${brightness}`); // 輸出 Brightness: 75

volume 的值為 0,雖然是假值,但不是 null 或 undefined,因此不會使用默認(rèn)值 50。
brightness 沒有定義,因此使用了默認(rèn)值 75。

三、瀏覽器支持情況

Nullish 合并運(yùn)算符在大多數(shù)現(xiàn)代瀏覽器中已經(jīng)得到支持:

  • ? Google Chrome 80+
  • ? Microsoft Edge 80+
  • ? Firefox 72+
  • ? Safari 13.1+
  • ? Opera 67+

?? TypeScript 會將 ?? 編譯為兼容 JavaScript 語法,確保在較老環(huán)境中依然可運(yùn)行(需配置合適的編譯目標(biāo))。

四、總結(jié)

合并運(yùn)算符(??)是 TypeScript 中處理 nullundefined 值的利器,特別適合用于:

  • 函數(shù)參數(shù)默認(rèn)值
  • 對象屬性默認(rèn)值
  • 用戶配置合并

它使得代碼更加健壯,避免不必要的類型判斷。是開發(fā)現(xiàn)代前端和后端應(yīng)用時(shí)不可或缺的一部分。

如果你正在使用 TypeScript 開發(fā)項(xiàng)目,建議立刻開始使用 ?? 運(yùn)算符,讓你的代碼更簡潔,更可控!

到此這篇關(guān)于TypeScript 中合并運(yùn)算符??的文章就介紹到這了,更多相關(guān)TypeScript 合并運(yùn)算符內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解ES6新增字符串?dāng)U張方法includes()、startsWith()、endsWith()

    詳解ES6新增字符串?dāng)U張方法includes()、startsWith()、endsWith()

    這篇文章主要介紹了詳解ES6新增字符串?dāng)U張方法includes()、startsWith()、endsWith(),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • 原生JS實(shí)現(xiàn)實(shí)時(shí)鐘表

    原生JS實(shí)現(xiàn)實(shí)時(shí)鐘表

    這篇文章主要為大家詳細(xì)介紹了原生JS實(shí)現(xiàn)實(shí)時(shí)鐘表,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • js動(dòng)態(tài)設(shè)置關(guān)鍵偵@keyframes的方法技巧

    js動(dòng)態(tài)設(shè)置關(guān)鍵偵@keyframes的方法技巧

    這篇文章主要給大家介紹了關(guān)于js動(dòng)態(tài)設(shè)置關(guān)鍵偵@keyframes的方法技巧,@keyframes規(guī)則通過在動(dòng)畫序列中定義關(guān)鍵幀(或waypoints)的樣式來控制CSS動(dòng)畫序列中的中間步驟,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-04-04
  • 利用原生JS自動(dòng)生成文章標(biāo)題樹的實(shí)例

    利用原生JS自動(dòng)生成文章標(biāo)題樹的實(shí)例

    網(wǎng)上關(guān)于生成文章標(biāo)題樹的示例很多,這篇文章介紹的是利用原生JS實(shí)現(xiàn)自動(dòng)生成文章標(biāo)題樹,實(shí)現(xiàn)過程很簡單,有需要的可以參考借鑒。
    2016-08-08
  • 一個(gè)頁面元素appendchild追加到另一個(gè)頁面元素的問題

    一個(gè)頁面元素appendchild追加到另一個(gè)頁面元素的問題

    一般都是自己創(chuàng)建元素然后append到頁面的但是如果是頁面本身有的元素append到另一個(gè)頁面元素呢,很多的新手朋友對此問題比較好奇,本人也是如此啊,好了不多說,切入主題,感興趣的朋友可以了解下哦
    2013-01-01
  • javascript通過元素id和name直接取得元素的方法

    javascript通過元素id和name直接取得元素的方法

    這篇文章主要介紹了javascript通過元素id和name直接取得元素的方法,涉及javascript獲取元素的相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • javascript操作數(shù)組詳解

    javascript操作數(shù)組詳解

    這篇文章主要詳細(xì)介紹了javascript操作數(shù)組的方法以及示例,需要的朋友可以參考下
    2014-12-12
  • JS的replace方法

    JS的replace方法

    在javascript中,String的函數(shù)replace()簡直太讓人喜愛了。它靈活而強(qiáng)大的字符替換處理能力,這里簡單介紹下,方便需要的朋友
    2013-12-12
  • JS ES6中setTimeout函數(shù)的執(zhí)行上下文示例

    JS ES6中setTimeout函數(shù)的執(zhí)行上下文示例

    這篇文章主要給大家介紹了關(guān)于JS ES6中setTimeout函數(shù)的執(zhí)行上下文的相關(guān)資料,文中給出了詳細(xì)的介紹和示例代碼供大家參考學(xué)習(xí),需要的朋友們下面來一起看看吧。
    2017-04-04
  • 基于Leaflet的Webgis經(jīng)緯網(wǎng)格功能實(shí)現(xiàn)

    基于Leaflet的Webgis經(jīng)緯網(wǎng)格功能實(shí)現(xiàn)

    本文將介紹一款Leaflet的經(jīng)緯網(wǎng)插件,基于這款經(jīng)緯網(wǎng)插件,詳細(xì)介紹如何實(shí)現(xiàn)經(jīng)緯網(wǎng)功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2023-12-12

最新評論

永兴县| 双牌县| 永德县| 洛浦县| 旬阳县| 日喀则市| 彰武县| 旅游| 大方县| 宿迁市| 乳源| 石首市| 登封市| 普格县| 巴林右旗| 阿克陶县| 福州市| 始兴县| 荔浦县| 吉林市| 铜陵市| 吴江市| 蒙山县| 贵溪市| 舞钢市| 盘锦市| 德令哈市| 绿春县| 余庆县| 枣庄市| 崇仁县| 兴海县| 祥云县| 嘉定区| 昭通市| 和林格尔县| 林周县| 来安县| 康乐县| 南溪县| 互助|