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

js中“??“和“?.“用法小結(jié)

 更新時間:2023年11月21日 10:21:34   作者:wyy愛學(xué)習(xí)  
這篇文章主要介紹了js中“??“和“?.“用法小結(jié),本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧

js中“??“和“?.“怎么用

??:空值合并操作符

邏輯操作符,左側(cè)為null和undefined時,才返回右側(cè)的數(shù)

const sum = null ?? 12
console.log(sum);
//輸出12
const sum1 = 12 ?? 23
console.log(sum1);
//輸出12
const sum2 = undefined ?? 12
console.log(sum2);
//輸出12

?. :可選鏈操作符

可以讀取位于連接對象鏈深處屬性的值,不必明確驗證鏈中的每個引用是否有效
功能類似于“.” 鏈式操作符,不同之處在于,在引用為空null 或者 undefined 的情況下不會引起錯誤,該表達式短路返回值是 undefined
與函數(shù)調(diào)用一起使用時,如果給定的函數(shù)不存在,則返回 undefined。

const fa = {
      name: 'lming',
      son: {
        name: 'lqq'
      }
    };
const duc = fa.duc?.name;
console.log(duc);
//輸出undefined

使用:

1.獲取一個對象更深層次的屬性,即obj中的first屬性下的second屬性。

為了避免報錯, 獲取之前要判斷first屬性是否為null或者undefined,在獲取second屬性
使用“與”運算符

let num = obj.first && obj.first.second;

使用?.可選鏈操作符

let num = obj.first?.second;

可選鏈與函數(shù)調(diào)用

調(diào)用一個可能不存在的方法時,如果被調(diào)用的方法不存在,使用可選鏈可以使表達式自動返回undefined而不是拋出一個異常

let result = someInterface.customMethod?.();

注:如果存在一個屬性名且不是函數(shù), 使用 ?. 仍然會產(chǎn)生一個 TypeError 異常 (x.y is not a function).

使用空值合并操作符

let customer = {
  name: "Carl",
  details: { age: 82 }
};
let customerCity = customer?.city ?? "暗之城";
console.log(customerCity); // “暗之城”

短路計算

let a = null;
let x = 0;
let prop = a?.[x++];
console.log(x); // x 將不會被遞增,依舊輸出 0

js中?.、??的具體用法

1、?. (可選鏈運算符)

在javascript中如果一個值為null、undefined,直接訪問下面的屬性,
會報 `Uncaught TypeError: Cannot read properties of undefined` 異常錯誤。

而在真實的項目中是會出現(xiàn)這種情況,有這個值就讀這個值,沒有這個值也不會報錯。

可能有的小伙伴會說用三目運算符、或者if判斷,但是這種也是可以的,但是在特定情況下會很復(fù)雜(如obj.data.person.name)

而?.則完美解決這個問題(obj?.name?.person?.name)。

 ?. 可以無限鏈下去,不論有多少屬性,只要有最后可以訪問到屬性,就會直接賦值最后的屬性值。否則當(dāng)任何一個鏈出現(xiàn)問題,立刻停止,而后賦值undefined。

2、??(空值合并運算符)

?? 雙問號后面是默認值(可常量、可變量)。

在 ?? 前面沒有值得時候會默認 ?? 后邊的值(類似于三木運算符中的:后面賦值)。

和 || 運算符的區(qū)別:

|| 只會在左邊的值為假值時返回右邊的值 (0, ‘’, undefined, null, false 等都為假值)

?? 是在左邊的值為undefined或者null時才會返回右邊的值

 總結(jié):??是判斷有沒有值,|| 是判斷真假

到此這篇關(guān)于js中“??“和“?.“怎么用?的文章就介紹到這了,更多相關(guān)js ?? 和?內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • javascript實現(xiàn)動態(tài)導(dǎo)入js與css等靜態(tài)資源文件的方法

    javascript實現(xiàn)動態(tài)導(dǎo)入js與css等靜態(tài)資源文件的方法

    這篇文章主要介紹了javascript實現(xiàn)動態(tài)導(dǎo)入js與css等靜態(tài)資源文件的方法,基于回調(diào)函數(shù)實現(xiàn)該功能,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • JS去掉字符串中所有的逗號

    JS去掉字符串中所有的逗號

    這篇文章主要介紹了JS去掉字符串中所有的逗號,需要的朋友可以參考下
    2017-10-10
  • 微信小程序頂部導(dǎo)航欄可滑動并選中放大

    微信小程序頂部導(dǎo)航欄可滑動并選中放大

    這篇文章主要介紹了微信小程序頂部導(dǎo)航欄可滑動并選中放大,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12
  • js捕獲鼠標滾輪事件代碼

    js捕獲鼠標滾輪事件代碼

    本文為大家介紹下如何使用js捕獲鼠標滾輪事件,原理很簡單,感興趣的朋友可以參考下
    2013-12-12
  • JavaScript?映射器?array.flatMap()

    JavaScript?映射器?array.flatMap()

    這篇文章主要介紹了JavaScript?映射器?array.flatMap(),array.flatMap()是一個映射函數(shù),它接收一個數(shù)組和一個映射函數(shù),然后返回一個新的映射數(shù)組,下面進入文章了解具體內(nèi)容
    2022-02-02
  • JS實現(xiàn)紙牌發(fā)牌動畫

    JS實現(xiàn)紙牌發(fā)牌動畫

    這篇文章主要為大家詳細介紹了JS實現(xiàn)紙牌發(fā)牌動畫,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-01-01
  • 微信小程序連續(xù)簽到7天積分獲得功能的示例代碼

    微信小程序連續(xù)簽到7天積分獲得功能的示例代碼

    今天通過一個案例給大家分享微信小程序連續(xù)簽到7天積分獲得功能,通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考價值,感興趣的朋友一起學(xué)習(xí)吧
    2020-08-08
  • js常用方法示例梳理(總結(jié)篇)

    js常用方法示例梳理(總結(jié)篇)

    這篇文章主要為大家介紹了js常用的方法示例梳理總結(jié)及功能詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • JS+canvas五子棋人機對戰(zhàn)實現(xiàn)步驟詳解

    JS+canvas五子棋人機對戰(zhàn)實現(xiàn)步驟詳解

    這篇文章主要介紹了JS+canvas五子棋人機對戰(zhàn)實現(xiàn)步驟詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-06-06
  • 微信小程序中網(wǎng)絡(luò)請求緩存的解決方法

    微信小程序中網(wǎng)絡(luò)請求緩存的解決方法

    這篇文章主要給大家介紹了關(guān)于微信小程序中網(wǎng)絡(luò)請求緩存的解決方法,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用微信小程序具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12

最新評論

灌阳县| 南宁市| 汾阳市| 丁青县| 农安县| 乡宁县| 开鲁县| 武义县| 文水县| 玉溪市| 卢氏县| 铁岭县| 两当县| 莒南县| 吉水县| 五家渠市| 晋宁县| 德庆县| 瑞昌市| 花莲市| 凤庆县| 平度市| 乳源| 新乡市| 河间市| 东乡县| 米脂县| 吉安市| 柞水县| 太谷县| 汕尾市| 石景山区| 罗定市| 扎囊县| 铁岭市| 龙口市| 个旧市| 堆龙德庆县| 紫阳县| 民和| 江华|