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

詳解JavaScript中?.、??和??=的用法及使用場景

 更新時(shí)間:2023年08月25日 14:27:06   作者:阿虎兒  
這篇文章主要為大家詳細(xì)介紹了JavaScript中?.、??和??=的用法及使用場景,文中的示例代碼講解詳細(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)榭眨瑅alue 將為 undefined
// 傳統(tǒng)寫法
 const value = obj && obj.foo && obj.foo.bar && obj.foo.bar.baz; // 需要手動(dòng)檢查每個(gè)屬性

1.2 使用場景

鏈?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 使用場景

提供默認(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 使用場景

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

4. 注意

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

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

相關(guān)文章

最新評(píng)論

白河县| 扶绥县| 重庆市| 许昌县| 天长市| 富裕县| 江油市| 任丘市| 宜城市| 渭源县| 潜山县| 进贤县| 桐柏县| 五寨县| 余江县| 临沭县| 昌江| 贵德县| 宁强县| 晋州市| 曲松县| 彰化县| 临泽县| 交城县| 山丹县| 东丽区| 广汉市| 衡水市| 鲁山县| 克拉玛依市| 科技| 宿迁市| 平安县| 长岭县| 乌鲁木齐县| 桐柏县| 门头沟区| 政和县| 泗水县| 台南市| 罗山县|