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

JavaScript中 ?、!和?? 的用法及區(qū)別詳解

 更新時(shí)間:2024年10月12日 08:42:42   作者:subwaydown  
在JavaScript中,?., !., 和 ?? 是三個(gè)不同的操作符,各自有不同的用途,旨在提高代碼的簡(jiǎn)潔性和安全性,尤其是在處理可能的null或undefined值時(shí),下面分別解釋這三個(gè)操作符的用法,需要的朋友可以參考下

1. 可選鏈操作符 ?.

用法: obj?.propobj?.[expr]

功能: 當(dāng)嘗試訪問(wèn)一個(gè)深層嵌套的屬性時(shí),如果對(duì)象objnullundefined,使用?.操作符可以避免拋出錯(cuò)誤,而是直接返回undefined,而不是嘗試訪問(wèn)不存在的屬性導(dǎo)致的錯(cuò)誤。

示例:

const user = null;
console.log(user?.name); // 輸出 undefined 而不是拋出錯(cuò)誤

2. 非空斷言操作符 !.

用法: obj!.prop

功能: 這個(gè)操作符告訴TypeScript編譯器你確定該表達(dá)式絕對(duì)不會(huì)為nullundefined,從而避免了類型檢查時(shí)的警告。需要注意的是,這僅影響編譯時(shí)的類型檢查,并不會(huì)改變運(yùn)行時(shí)的行為,因此如果實(shí)際上該表達(dá)式為nullundefined,依然會(huì)導(dǎo)致運(yùn)行時(shí)錯(cuò)誤。

示例: (此示例假設(shè)在TypeScript環(huán)境下)

let user: User | null = fetchUserData();
console.log(user!.name); // 告訴TypeScript你確定user不是null或undefined

3. 空值合并操作符 ??

用法: value ?? fallback

功能: 當(dāng)valuenullundefined時(shí),返回fallback指定的值;否則,返回value本身。這與邏輯或||操作符不同,因?yàn)?code>||會(huì)在value為任何假值(如0、false、空字符串等)時(shí)就返回fallback,而??只在value嚴(yán)格等于nullundefined時(shí)才進(jìn)行替換。

示例:

let num = null;
const result = num ?? 42; // result為42,因?yàn)閚um是null

總結(jié)起來(lái),?.幫助安全地訪問(wèn)對(duì)象屬性,!.用于告訴TypeScript編譯器忽略可能的nullundefined檢查(使用時(shí)要確保安全),而??則是在值為nullundefined時(shí)提供一個(gè)替代值。

到此這篇關(guān)于JavaScript中 ?、!和?? 的用法及區(qū)別詳解的文章就介紹到這了,更多相關(guān)JavaScript ?、!、??用法及區(qū)別內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 微信小程序全局變量功能與用法詳解

    微信小程序全局變量功能與用法詳解

    這篇文章主要介紹了微信小程序全局變量功能與用法,結(jié)合實(shí)例形式詳細(xì)分析了微信小程序全局變量的作用、定義、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2019-01-01
  • uniapp中使用vuex并持久化的方法示例

    uniapp中使用vuex并持久化的方法示例

    vuex是基于vuex.js的狀態(tài)管理工具,可以把它理解為一個(gè)倉(cāng)庫(kù),下面這篇文章主要給大家介紹了關(guān)于uniapp中如何使用vuex并持久化的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • JS利用map整合雙數(shù)組的小技巧分享

    JS利用map整合雙數(shù)組的小技巧分享

    Map是一組鍵值對(duì)的結(jié)構(gòu),具有極快的查找速度,下面這篇文章主要給大家介紹了關(guān)于JS利用map整合雙數(shù)組的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-08-08
  • JavaScript 回車 焦點(diǎn)切換

    JavaScript 回車 焦點(diǎn)切換

    回車鍵按下時(shí),自動(dòng)以Tab鍵方式在文本輸入框之間進(jìn)行焦點(diǎn)切換的JavaScript代碼
    2009-06-06
  • 構(gòu)建一個(gè)JavaScript插件系統(tǒng)

    構(gòu)建一個(gè)JavaScript插件系統(tǒng)

    這篇文章主要介紹了如何構(gòu)建一個(gè)JavaScript插件系統(tǒng),幫助大家更好的理解和使用JavaScript,感興趣的朋友可以了解下
    2020-10-10
  • JS變量及其作用域

    JS變量及其作用域

    本文主要介紹了JS變量及其作用域的相關(guān)知識(shí)。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-03-03
  • Bootstrap模態(tài)框插入視頻的實(shí)現(xiàn)代碼

    Bootstrap模態(tài)框插入視頻的實(shí)現(xiàn)代碼

    這篇文章主要介紹了Bootstrap模態(tài)框插入視頻的實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2017-06-06
  • 使用Sticky組件實(shí)現(xiàn)帶sticky效果的tab導(dǎo)航和滾動(dòng)導(dǎo)航的方法

    使用Sticky組件實(shí)現(xiàn)帶sticky效果的tab導(dǎo)航和滾動(dòng)導(dǎo)航的方法

    sticky組件,通常應(yīng)用于導(dǎo)航條或者工具欄,當(dāng)網(wǎng)頁(yè)在某一區(qū)域滾動(dòng)的時(shí)候,將導(dǎo)航條或工具欄這類元素固定在頁(yè)面頂部或底部,方便用戶快速進(jìn)行這類元素提供的操作
    2016-03-03
  • js頁(yè)面跳轉(zhuǎn)常用的幾種方式

    js頁(yè)面跳轉(zhuǎn)常用的幾種方式

    js實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn)的幾種方式,需要的朋友可以參考下。
    2010-11-11
  • 微信小程序使用npm支持踩坑

    微信小程序使用npm支持踩坑

    這篇文章主要介紹了微信小程序使用npm支持踩坑,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-11-11

最新評(píng)論

四子王旗| 通海县| 北辰区| 凯里市| 平果县| 新乡县| 垣曲县| 麦盖提县| 静宁县| 邵阳县| 鹤岗市| 泾川县| 汉沽区| 漾濞| 离岛区| 惠安县| 新建县| 毕节市| 镇坪县| 泽州县| 碌曲县| 白河县| 枣阳市| 兴山县| 齐齐哈尔市| 定南县| 都昌县| 肃北| 清涧县| 连平县| 灵台县| 锡林郭勒盟| 木兰县| 合阳县| 洛隆县| 平潭县| 离岛区| 靖州| 顺昌县| 太康县| 洛川县|