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

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

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

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

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

可選鏈操作符允許您在訪問對象屬性或調用函數(shù)時,檢查中間的屬性是否存在或為 null/undefined。如果中間的屬性不存在或為空,表達式將短路返回 undefined,而不會引發(fā)錯誤。

1.1 用法示例

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

1.2 使用場景

鏈式訪問對象屬性,而不必手動檢查每個屬性是否存在。

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

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

空值合并操作符用于選擇性地提供默認值,僅當變量的值為 null 或 undefined 時,才返回提供的默認值。否則,它將返回變量的實際值。

2.1 用法示例

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

2.2 使用場景

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

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

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

空值合并賦值操作符結合了空值合并操作符和賦值操作符。它用于將默認值分配給變量,僅當變量的值為 null 或 undefined 時。

3.1 用法示例

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

3.2 使用場景

在變量沒有被賦值或被賦值為 null 或 undefined 時,將默認值分配給變量。

4. 注意

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

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

相關文章

最新評論