亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

詳解JavaScript中?.、??和??=的用法及使用場(chǎng)景

 更新時(shí)間:2023年08月25日 14:27:06   作者:阿虎兒  
這篇文章主要為大家詳細(xì)介紹了JavaScript中?.、??和??=的用法及使用場(chǎng)景,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

下面這個(gè)錯(cuò)誤,相信前端開發(fā)工程師應(yīng)該經(jīng)常遇到吧,要么是自己考慮不全造成的,要么是后端開發(fā)人員丟失數(shù)據(jù)或者傳輸錯(cuò)誤數(shù)據(jù)類型造成的。因此對(duì)數(shù)據(jù)訪問時(shí)的非空判斷就變成了一件很繁瑣且重要的事情,下面就介紹ES6一些新的語法來方便我們開發(fā)。

1. 可選鏈操作符 (Optional Chaining Operator - ?.)

可選鏈操作符允許您在訪問對(duì)象屬性或調(diào)用函數(shù)時(shí),檢查中間的屬性是否存在或?yàn)?null/undefined。如果中間的屬性不存在或?yàn)榭?,表達(dá)式將短路返回 undefined,而不會(huì)引發(fā)錯(cuò)誤。

1.1 用法示例

const obj = {
 foo: {
   bar: {
     baz: 42
   }
 }
};
// 使用可選鏈操作符
const value = obj?.foo?.bar?.baz; // 如果任何中間屬性不存在或?yàn)榭?,value 將為 undefined
// 傳統(tǒng)寫法
 const value = obj && obj.foo && obj.foo.bar && obj.foo.bar.baz; // 需要手動(dòng)檢查每個(gè)屬性

1.2 使用場(chǎng)景

鏈?zhǔn)皆L問對(duì)象屬性,而不必手動(dòng)檢查每個(gè)屬性是否存在。

調(diào)用可能不存在的函數(shù)。

2. 空值合并操作符 (Nullish Coalescing Operator - ??)

空值合并操作符用于選擇性地提供默認(rèn)值,僅當(dāng)變量的值為 null 或 undefined 時(shí),才返回提供的默認(rèn)值。否則,它將返回變量的實(shí)際值。

2.1 用法示例

const foo = null;
const bar = undefined;
const baz = 0;
const qux = '';
cosnt xyz = false;
const value1 = foo ?? 'default'; // 'default',因?yàn)?foo 是 null
const value2 = bar ?? 'default'; // 'default',因?yàn)?bar 是 undefined
const value3 = baz ?? 'default'; // 0,因?yàn)?baz 不是 null 或 undefined
const value4 = qux ?? 'default'; // '',因?yàn)?qux 不是 null 或 undefined
const value5 = xyz ?? 'default'; // false,因?yàn)?xyz 不是 null 或 undefined
//可能存在的傳統(tǒng)寫法,除了null,undefined, 無法兼容0、''、false的情況,使用時(shí)要特別小心
const value1 = foo || 'default'; // 'default'
const value2 = bar || 'default'; // 'default'
const value3 = baz || 'default'; // 'default',因?yàn)?0 轉(zhuǎn)布爾類型是 false
const value4 = qux || 'default'; // 'default',因?yàn)?'' 轉(zhuǎn)布爾類型是 false
const value5 = xyz || 'default'; // 'default'

2.2 使用場(chǎng)景

提供默認(rèn)值,而不使用 falsy 值(如空字符串、0 等)。

在處理可能為 null 或 undefined 的變量時(shí),選擇性地提供備用值。

3. 空值合并賦值操作符 (Nullish Coalescing Assignment Operator - ??=)

空值合并賦值操作符結(jié)合了空值合并操作符和賦值操作符。它用于將默認(rèn)值分配給變量,僅當(dāng)變量的值為 null 或 undefined 時(shí)。

3.1 用法示例

let foo = null;
let bar = undefined;
let baz = 0;
foo ??= 'default'; // 'default',因?yàn)?foo 是 null
bar ??= 'default'; // 'default',因?yàn)?bar 是 undefined
baz ??= 'default'; // 0,因?yàn)?baz 的初始值不是 null 或 undefined

3.2 使用場(chǎng)景

在變量沒有被賦值或被賦值為 null 或 undefined 時(shí),將默認(rèn)值分配給變量。

4. 注意

這些運(yùn)算符在處理可能為 null 或 undefined 的值時(shí)非常有用,可以簡化代碼并提高可讀性。然而,需要注意的是,它們是在 ECMAScript 2020 標(biāo)準(zhǔn)中引入的,因此在舊版本的 JavaScript 中可能不被支持。

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

相關(guān)文章

  • javascript 通用簡單的table選項(xiàng)卡實(shí)現(xiàn)

    javascript 通用簡單的table選項(xiàng)卡實(shí)現(xiàn)

    鑒于UI妹妹每次交付過來的選項(xiàng)卡都夾帶了多多少少的js,而且每遇到選項(xiàng)卡就加一點(diǎn)js,造成垃圾低劣代碼逐漸堆積過多了,一直想做一個(gè)通用簡潔的選項(xiàng)卡庫。
    2010-05-05
  • JavaScript將字符串轉(zhuǎn)換成字符編碼列表的方法

    JavaScript將字符串轉(zhuǎn)換成字符編碼列表的方法

    這篇文章主要介紹了JavaScript將字符串轉(zhuǎn)換成字符編碼列表的方法,實(shí)例分析了javascript中charCodeAt函數(shù)的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • js樹插件zTree獲取所有選中節(jié)點(diǎn)數(shù)據(jù)的方法

    js樹插件zTree獲取所有選中節(jié)點(diǎn)數(shù)據(jù)的方法

    這篇文章主要介紹了js樹插件zTree獲取所有選中節(jié)點(diǎn)數(shù)據(jù)的方法,是對(duì)js樹插件zTree非常實(shí)用的操作,需要的朋友可以參考下
    2015-01-01
  • JS實(shí)現(xiàn)斐波那契數(shù)列的五種方式(小結(jié))

    JS實(shí)現(xiàn)斐波那契數(shù)列的五種方式(小結(jié))

    這篇文章主要介紹了JS實(shí)現(xiàn)斐波那契數(shù)列的五種方式(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • 純js實(shí)現(xiàn)圖片勻速淡入淡出效果

    純js實(shí)現(xiàn)圖片勻速淡入淡出效果

    這篇文章主要為大家詳細(xì)介紹了純js實(shí)現(xiàn)圖片勻速淡入淡出效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • js求數(shù)組中全部數(shù)字可拼接出的最大整數(shù)示例代碼

    js求數(shù)組中全部數(shù)字可拼接出的最大整數(shù)示例代碼

    這篇文章主要給大家介紹了利用js如何求數(shù)組中全部數(shù)字可拼接出的最大整數(shù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考借鑒,下面隨著小編一起來學(xué)習(xí)學(xué)習(xí)吧。
    2017-08-08
  • js獲取元素到可視區(qū)的距離、瀏覽器窗口滾動(dòng)距離及元素距離瀏覽器頂部距離

    js獲取元素到可視區(qū)的距離、瀏覽器窗口滾動(dòng)距離及元素距離瀏覽器頂部距離

    這篇文章主要給大家介紹了關(guān)于js獲取元素到可視區(qū)的距離、瀏覽器窗口滾動(dòng)距離及元素距離瀏覽器頂部距離的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-11-11
  • 微信小程序頁面滑動(dòng)屏幕加載數(shù)據(jù)效果

    微信小程序頁面滑動(dòng)屏幕加載數(shù)據(jù)效果

    這篇文章主要為大家詳細(xì)介紹了微信小程序頁面滑動(dòng)屏幕加載數(shù)據(jù)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • 使用pkg打包ThinkJS項(xiàng)目的方法步驟

    使用pkg打包ThinkJS項(xiàng)目的方法步驟

    這篇文章主要介紹了使用pkg打包ThinkJS項(xiàng)目的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • 談?wù)凧avaScript異步函數(shù)發(fā)展歷程

    談?wù)凧avaScript異步函數(shù)發(fā)展歷程

    對(duì)大部分JavaScript開發(fā)者而言,async函數(shù)仍是新鮮事物,其發(fā)展經(jīng)歷了漫長的旅程。本文將梳理總結(jié)JavaScript異步函數(shù)的發(fā)展歷程,并表示未來async函數(shù)將成為實(shí)現(xiàn)異步的主要方式。
    2015-09-09

最新評(píng)論