關(guān)于Javascript中值得學(xué)習(xí)的特性總結(jié)
可選鏈操作符(Optional Chaining Operator)
可選鏈操作符允許我們在一個(gè)對象的屬性值為空或未定義時(shí),直接返回undefined,而不會拋出“Cannot read property 'xxx' of undefined”等錯(cuò)誤。這樣的好處是可以簡化代碼,避免繁瑣的判斷邏輯。例如:
const person = {
name: 'Tom',
age: 18,
address: {
city: 'Shanghai'
}
};
// 普通寫法
if (person && person.address && person.address.city) {
console.log(person.address.city);
} else {
console.log('unknown');
}
// 可選鏈寫法
console.log(person?.address?.city ?? 'unknown');在上述代碼中,我們使用了可選鏈操作符(?)和nullish合并運(yùn)算符(??),將原本需要多次判斷的代碼縮減到了一行。如果person、address或city不存在,則會直接返回undefined或'unknown'。
空值合并運(yùn)算符(Nullish Coalescing Operator)
空值合并運(yùn)算符允許我們在變量為空或undefined時(shí),直接返回默認(rèn)值。與傳統(tǒng)的||操作符不同,它只會在變量為null或undefined時(shí)返回默認(rèn)值,而不是在變量為0、空字符串或false時(shí)也返回默認(rèn)值。例如:
const name = ''; // 普通寫法 const username = name || 'unknown'; // 空值合并寫法 const username = name ?? 'unknown';
在上述代碼中,我們使用了空值合并運(yùn)算符(??)將原本需要繁瑣判斷的代碼簡化到了一行,如果name為空或undefined,則會返回'unknown'。
Promise.allSettled()
Promise.allSettled()方法可以接收一個(gè)由Promise對象組成的數(shù)組,等待所有Promise對象都執(zhí)行完成后,返回一個(gè)包含所有Promise對象的狀態(tài)信息(fulfilled/rejected)和結(jié)果值(value/reason)的數(shù)組。與Promise.all()不同的是,即使其中某個(gè)Promise被reject,Promise.allSettled()仍然會等待其他Promise對象執(zhí)行完畢后再返回結(jié)果。例如:
const promises = [
Promise.resolve(1),
Promise.reject(new Error('fail')),
Promise.resolve(3)
];
Promise.allSettled(promises).then(results => {
results.forEach(result => {
console.log(result.status, result.value);
});
});在上述代碼中,我們使用了Promise.allSettled()方法獲取了所有Promise對象的狀態(tài)信息和結(jié)果值,并使用forEach遍歷輸出了它們的狀態(tài)(fulfilled/rejected)和結(jié)果值(value/reason)。
BigInt類型
BigInt類型是ES2020新引入的一種數(shù)據(jù)類型,用于表示任意精度的整數(shù)。相較于Number類型,它能夠處理更大的整數(shù),避免了溢出和精度丟失的問題。例如:
const x = BigInt(Number.MAX_SAFE_INTEGER);
const y = BigInt('9007199254740993');
const z = x + y;
console.log(z); // 9007199254740994n在上述代碼中,我們使用了BigInt類型來表示較大的整數(shù),并通過+運(yùn)算符對它們進(jìn)行了加法計(jì)算。
以上就是關(guān)于Javascript中值得學(xué)習(xí)的特性總結(jié)的詳細(xì)內(nèi)容,更多關(guān)于Javascript特性的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
artdialog的圖片/標(biāo)題以及關(guān)閉按鈕不顯示的解決方法
Three.js利用性能插件stats實(shí)現(xiàn)性能監(jiān)聽的方法
javascript中閉包c(diǎn)losure的深入講解
javascript 不用reverse實(shí)現(xiàn)字符串反轉(zhuǎn)的代碼
js HTML DOM EventListener功能與用法實(shí)例分析
javascript 翻頁測試頁(動態(tài)創(chuàng)建標(biāo)簽并自動翻頁)

