精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

ES12中新的JavaScript 語言特性

開發 前端
隨著即將發布的 ECMAScript 2022 版本即將發布,讓我們來看看 ECMAScript 2021 中引入的新 JavaScript 語言功能。

JavaScript 語言規范,也稱為 ECMAScript 或 ES,是一個動態文檔,每年都會根據不斷變化的需求進行修改。雖然 JavaScript 最初是一種腳本語言,但 ECMAScript 規范概述指出,該語言“現在被用于許多不同環境和規模的全方位編程任務。”因此,JavaScript 被更好地理解為一種功能齊全的通用用途的編程語言。

隨著即將發布的 ECMAScript 2022 版本即將發布,讓我們來看看 ECMAScript 2021 中引入的新 JavaScript 語言功能。

String.prototype.replaceAll

replaceAll() 方法將一個字符串或正則表達式(稱為模式)作為其第一個參數。第二個參數是模式的替換。給定第一個和第二個參數,replaceAll() 返回一個新字符串,它將作為源字符串,其中模式的所有實例都被替換為替換。源字符串不受影響。

在 ECMAScript 2021 中,replaceAll() 與 ECMAScript 2020 的 matchAll() 一起改進了 JavaScript 內置 String 對象的固有功能。

replaceAll() 方法的工作方式與 replace() 完全相同,但適用于字符串中的所有匹配項,而不僅僅是第一個匹配項。經過多年不得不使用庫或手動編碼的解決方案,這是一個受歡迎的補充。

在示例1中,我例舉了一個簡單的示例,其中我們修改了一些莎士比亞作品。

示例1、 replaceAll()

let quote = "all the world's a stage, and all the men and women merely players";
let newQuote = quote.replaceAll("all", "most of");
console.log(newQuote);

promise.any()  

promise.any() 方法接受一組承諾,并允許通過返回一個新的承諾來響應第一個成功完成的promise。

如果任何promise被拒絕,它們將被忽略。(請注意此方法與 promise.all() 的對比,后者在任何錯誤或拒絕時停止;與 promise.allSettled() 相比,它可以讓您觀察在集合中解決的所有promise,即使存在中間錯誤。)

如果任何一個 Promise 出錯,promise.any() 仍然會根據集合中的第一個已解決的 Promise 進行操作。

如果傳入的 Promise 都沒有解析,則 promise.any() 方法返回一個被拒絕的 Promise。它返回的錯誤是 AggregateError,它也是 ECMAScript 2021 引入的一種新錯誤類型。AggregateError 表示遇到的所有錯誤的摘要。

我們可以使用 promise.any() 將多個 Promise 匯總為一個。該承諾將解決首先解決的集合,忽略錯誤和拒絕。

下面有一個簡單的示例。

示例2、promise.any()——全部解決

接著,我們開始看示例3,其中所有的 Promise 最終都因為被拒絕而失敗。

const promise1 = new Promise((resolve, reject) => {
setTimeout(resolve, 1000, "1 second");
});
const promise2 = new Promise((resolve, reject) => {
setTimeout(resolve, 2000, "2 second");
});
let promises = [promise1, promise2];
Promise.any(promises).then((firstResolved) => {
console.log(firstResolved); // outputs “1 second”
})

示例3、promise.any()——全部被拒絕

在示例3 中,我們添加了一個 catch 處理程序,它在兩個 Promise 都被拒絕后觸發。請注意,AggregateError 是一個包含有關失敗承諾的信息的對象。

const promise1 = new Promise((resolve, reject) => {
setTimeout(reject, 1000, "1 second");
});
const promise2 = new Promise((resolve, reject) => {
setTimeout(reject, 2000, "2 second");
});
let promises = [promise1, promise2];
Promise.any(promises).then((firstResolved) => {
console.log(firstResolved);
}).catch((err) => { console.log("error: " + err) }) // outputs error: AggregateError: All promises were rejected

讓我們仔細看看 AggregateError,它是 ECMAScript 2021 中的另一個新特性。

AggregateError  

AggregateError 是一種特殊的錯誤子類,它將許多錯誤組合成一個匯總對象。如您所見,特性 3 中的 promise.any() 方法創建了一個 AggregateError。

在該示例中,傳遞給 promise.any() 的所有promise都失敗了,因此該方法返回了 AggregateError。錯誤包含描述錯誤的消息和包含有關每個錯誤的詳細信息的數組。  

但是在示例4 顯示了返回的錯誤內容。

示例4、 AggregateError

如上所示,AggregateError 可以通過 AggregateError.errors 訪問導致錯誤的承諾消息。

AggregateError: All promises were rejected
errors: Array(2)
0: "1 second"
1: "2 second"
length: 2
message: "All promises were rejected"
stack: "AggregateError: All promises were rejected"

新的邏輯賦值運算符

JavaScript 有熟悉的數學賦值運算符,例如 +=,它可以一次性執行運算和賦值,作為一種方便。ECMAScript 2021 為邏輯運算符 ||、?? 和 && 添加了類似的支持。

讓我們來看看其中的每一個。

空賦值 (??=)

我們可以使用 nullish 賦值運算符來測試變量是否為 null 或undefined。如果變量為 null 或undefined,我們可以將表達式的右側分配給變量。  

接著,我們繼續看示例5中的一個示例。

示例5、 ??= 實際賦值

請注意,當用于存在的變量時,例如 existingQuote,nullish 賦值運算符什么也不做。但是,當在 nonExistingQuote 上使用時,它會為報價分配一個新值。

let quote = "When goodness is lost there is morality.";
let existingQuote = "A leader is best when people barely know he exists";
let nonExistingQuote = null;
existingQuote ??= quote;
nonExistingQuote ??= quote;
console.log(existingQuote); // A leader is best when people barely know he exists
console.log(nonExistingQuote); // When goodness is lost there is morality.

即使existingQuote 的字符串為空(在JavaScript 中是一個假值),nullish 賦值也不會替換它;它將保持為空字符串。這就是運算符的本質:它只測試 null 或 undefined。

和賦值 (&&=)

和賦值運算符 (&&=) 測試表達式的左側。如果左側為真,則分配表達式的右側。如果它是假的,則操作員什么也不做。  

下面我們看特性6中的一個簡單的示例。

示例6、賦值運算符 ( &&=)

和賦值運算符 ( &&=)用于表達式的左側。如果左側不為null或undefined,則分配表達式的右側。如果它是假的,則什么也不做。

let emptyString = "";
emptyString &&= "bar";
console.log (emptyString); // “”
let nonEmptyString = "foo";
nonEmptyString &&= "bar";
console.log(nonEmptyString); // “bar”

在特性6 中,第一個控制臺日志輸出一個空字符串。這是因為空字符串是虛假的,因此 &&= 運算符不會為其分配新值。第二個控制臺輸出“bar”。這是因為 nonEmptyString 是“foo”,這是一個真值。

&&= 是一種邊緣情況運算符,但在您需要時很有用。

或賦值 (||=)

or 賦值運算符與您剛剛看到的 and 賦值運算符相反。我們可以使用清單 6 中的相同示例,這次將 &&= 替換為 ||=。

示例 7、||= 實際賦值

let emptyString = "";
emptyString ||= "bar";
console.log (emptyString); // “bar”
let nonEmptyString = "foo";
nonEmptyString ||= "bar";
console.log(nonEmptyString); // “foo”

如果表達式的左側是假的,||= 賦值運算符解析到右側。因此,在這種情況下,emptyString 變為“bar”。nonEmptyString 變量保持其真實值“foo”。

WeakRef  

WeakRef 用于引用目標對象,而不會將其從垃圾收集中保存。這是一個相當深奧的語言功能,工作編碼人員很少使用。WeakRef 的一個常見用例是實現大對象的緩存或映射,“不希望大對象僅僅因為它出現在緩存或映射中而保持活動狀態。”

因此,如果發現自己正在為大型實體構建緩存解決方案,請記住 WeakRef 存在。否則,如果不確定是否需要 WeakRef 變量引用,應該避免使用它。(規范本身建議避免使用。)

FinalizationRegistry

JavaScript 幾乎與 Java 棄用 Object.finalize() 幾乎同時引入了 FinalizationRegistry,這有點編程諷刺。這些特征實際上是相似的。與 WeakRef 一樣,規范警告開發人員遠離用戶定義的終結器。

但是,對于某些用例,新的 FinalizationRegistry 可能正是我們所需要的。該規范提供了消耗許多文件句柄的長時間運行進程的示例。在這種情況下,使用 FinalizationRegistry 可以確保沒有句柄被泄露。

與 WeakRef 一起,FinalizationRegistry 更適合平臺和框架開發人員的工具箱,而不是應用程序開發人員。

Numeric literal separators

數字分隔符是一種很好的方式,可以讓我們更輕松地查看大量數字。JavaScript 不能像自然語言那樣使用逗號,因為那個符號已經被占用了。因此,ECMAScript 2021 引入了下劃線。

第一輸入方式:

let distanceToSun = 91772000000;

第二種輸入方式:

let distanceToSun = 91_772_000_000;

但是第二種方式更容易閱讀。

Array.prototype.sort improvements

這更像是一個注釋而不是一個功能。基本上,ECMAScript 2021 規范更準確地描述了 Array.prototype.sort 的工作原理。這種變化應該會減少引擎之間實現的差異。

寫在最后

以上就是全部內容,如果你覺得有用的話,記得點贊我,關注我,我將與你分享更多有用的內容。

祝編程愉快!

責任編輯:龐桂玉 來源: WEB前端開發社區
相關推薦

2020-11-04 11:05:38

JavaScript新特性前端

2021-07-15 08:55:17

ES12 ECMAScript JS 功能

2022-08-05 13:14:25

ES2022JavaScript代碼

2021-09-04 05:00:26

ESES2021ES12

2009-07-07 13:02:29

JDK1.5

2023-01-31 07:36:25

JavaScript數組緩沖

2024-08-05 08:38:13

2023-07-19 08:03:05

Future異步JDK

2013-03-26 10:27:01

JavaScriptjson

2019-12-27 16:10:53

前端javascriptnode.js

2021-04-30 19:53:41

Java表達式代碼

2022-10-31 16:20:33

JavaScript前端開發

2009-08-18 09:17:01

JavaScript2

2023-04-19 15:26:52

JavaScriptES13開發

2009-09-02 15:35:57

Oracle 11g

2024-07-02 08:36:09

JavaScriptUnicode模式

2025-11-19 08:23:37

2021-05-21 09:34:40

React React 17前端

2016-01-21 11:05:52

ES6JavaScript新特性

2023-05-04 07:48:29

Debian 12Linux
點贊
收藏

51CTO技術棧公眾號

日韩激情啪啪| av在线网址观看| 久久精品二区三区| 国产一区二区三区视频在线观看| www日韩在线观看| 欧美96在线| 国产iv一区二区三区| 81精品国产乱码久久久久久| www.av欧美| 精品国产18久久久久久二百| 亚洲成va人在线观看| 日韩三级在线播放| 精品国产亚洲一区二区麻豆| 亚洲国产清纯| 色综久久综合桃花网| 国产免费无码一区二区| 奇米777日韩| 亚洲精品成a人| 欧美久久久久久| 99在线精品视频免费观看20| 国产亚洲精品bv在线观看| 中文字幕亚洲自拍| 动漫美女无遮挡免费| 福利一区二区| 婷婷六月综合网| 亚洲图色在线| 午夜激情在线视频| 久久99日本精品| 国产91成人在在线播放| 男人与禽猛交狂配| 黑人操亚洲人| 亚洲电影免费观看高清完整版在线 | 91亚洲国产成人精品一区二三| 国产成人精品优优av| 久久久精品99| 国产精品久久占久久| 精品亚洲aⅴ在线观看| 99九九99九九九99九他书对| 日韩电影免费观| 亚洲第一久久影院| 日韩a级黄色片| 日本电影全部在线观看网站视频| 91美女片黄在线| 国产精品乱码视频| 国产视频aaa| 久久机这里只有精品| 欧洲精品久久久| 日本在线观看中文字幕| 午夜精品视频| 欧美巨乳在线观看| 韩国一级黄色录像| 日本一区二区高清不卡| 亚洲图片在区色| 伊人网伊人影院| 蜜桃国内精品久久久久软件9| 精品电影一区二区三区| 国产黑丝在线视频| 动漫一区二区三区| 欧美一级午夜免费电影| 57pao国产成永久免费视频| 99re66热这里只有精品4| 精品久久久久久中文字幕| 久久久久免费看黄a片app| 欧美性猛片xxxxx免费中国| 亚洲精品水蜜桃| 青青在线视频免费观看| www.欧美日本韩国| 有码一区二区三区| 青草视频在线观看视频| 污的网站在线观看| 亚洲午夜三级在线| www.99热这里只有精品| 精精国产xxxx视频在线播放| 大伊人狠狠躁夜夜躁av一区| 国产91在线免费| 国产精品专区免费| 91国模大尺度私拍在线视频| www黄色av| 亚洲成人看片| 欧美精品色一区二区三区| 免费看污黄网站| 日韩av黄色| 欧美成人精品1314www| 久久久久久久久久久久国产精品| 91精品尤物| 日韩电视剧免费观看网站| 中文字幕一区二区人妻在线不卡 | 亚洲欧美日韩国产一区| 欧美一二三视频| 中文字幕xxxx| 韩国精品一区二区| 国产精品一区二区三区免费观看| 外国精品视频在线观看 | 蜜臀av粉嫩av懂色av| 免费观看成人www动漫视频| 精品夜色国产国偷在线| 亚洲最大成人综合网| 99国产精品一区二区| 欧美福利视频在线观看| 国产高清中文字幕| 久草在线在线精品观看| 999日本视频| 欧美色视频免费| 亚洲丝袜美腿综合| 成人毛片视频网站| 日日夜夜一区| 亚洲精品成人网| 九九这里只有精品视频| 亚洲区国产区| 国产欧美日韩免费| 色欲av永久无码精品无码蜜桃| 欧美激情在线观看视频免费| 超碰超碰超碰超碰超碰| 粉嫩一区二区| 精品日韩一区二区三区| 三年中国中文观看免费播放| 欧美特黄一区| 国产日韩专区在线| 青青青草原在线| 亚洲精品综合在线| www.xxx亚洲| 风间由美性色一区二区三区四区| 中文字幕亚洲欧美一区二区三区| 国产成人亚洲精品自产在线| 黑人巨大精品欧美一区| 久久久av水蜜桃| 色噜噜狠狠狠综合欧洲色8| 在线观看亚洲专区| 在线精品视频播放| 中文在线播放一区二区| 国产精品久久久久久久天堂| 污视频网站免费观看| 亚洲乱码日产精品bd| 国产91色在线观看| 性欧美xxxx免费岛国不卡电影| 久久中文精品视频| 在线视频你懂得| 久久久精品天堂| www.av中文字幕| 亚洲精品a区| 亚洲午夜精品一区二区国产| 日韩欧美在线123| 精品手机在线视频| 首页综合国产亚洲丝袜| 精品一区久久久久久| 金瓶狂野欧美性猛交xxxx| 欧美日韩国产免费一区二区| 亚洲精品国产一区黑色丝袜| aa亚洲婷婷| 国产伦精品一区二区三区照片| av大全在线| 欧美精品欧美精品系列| 国产在线免费av| 日本亚洲视频在线| 欧美日韩一区二区三区免费| 97蜜桃久久| 亚洲高清免费观看高清完整版| 国产suv一区二区三区| 久久精品国产精品亚洲综合| 欧美日韩一区在线视频| 免费福利视频一区二区三区| 亚洲欧美国产精品专区久久 | 亚洲综合无码一区二区| 国产黑丝在线视频| 国产精品mm| 国产乱码精品一区二区三区卡| 成人免费一区二区三区牛牛| 欧美不卡在线视频| 日韩乱码一区二区| 久久综合成人精品亚洲另类欧美| 久草资源站在线观看| 精品国产午夜| 国产在线播放不卡| 91三级在线| 亚洲第一av网站| 国产精品21p| 欧美激情一二三区| 岛国av免费在线| 欧美欧美天天天天操| 国产精品一区二区a| 英国三级经典在线观看| 日韩精品中文字| 姑娘第5集在线观看免费好剧| 中文字幕一区二区三区在线不卡| 五月六月丁香婷婷| 国产专区一区| 欧美一区二区三区在线免费观看 | 天天色综合天天| 草草影院第一页| 久久精品国产77777蜜臀| 毛片在线视频观看| 一区二区三区日本久久久| 国产精品永久免费观看| 成人免费网站在线观看视频| 亚洲精品720p| 中文字字幕在线观看| 亚洲免费视频中文字幕| 国产精品福利导航| 奇米在线7777在线精品| 大陆极品少妇内射aaaaaa| 久草在线综合| 国产日韩综合一区二区性色av| 欧美人与牲禽动交com| 亚洲男人天堂视频| 国产丰满果冻videossex| 欧美色图在线视频| 国精产品一区一区二区三区mba| 成人99免费视频| 污网站免费在线| 最新日韩欧美| 自拍视频一区二区三区| 欧美调教在线| 亚洲a在线观看| 欧美xnxx| 668精品在线视频| 成人看av片| 一区二区欧美久久| 欧美在线 | 亚洲| 7777女厕盗摄久久久| 99精品在线播放| 一区二区三区 在线观看视频 | 欧美丝袜美腿| 1卡2卡3卡精品视频| 3d欧美精品动漫xxxx无尽| 久久久中精品2020中文| 嫩草在线视频| 亚洲性无码av在线| 日本加勒比一区| 欧美一区二区三区色| 伊人成年综合网| 欧美日韩亚洲高清| 日韩精品一区二区不卡| 亚洲乱码国产乱码精品精可以看| 亚洲午夜精品久久久久久高潮| gogo大胆日本视频一区| 麻豆av免费看| 国产一区二区按摩在线观看| 天天视频天天爽| 久久精品天堂| 成人毛片视频网站| 亚洲精选在线| 国产九色porny| 午夜国产欧美理论在线播放 | 国产成人av片| 国产一区激情在线| 8x8x成人免费视频| 麻豆精品视频在线观看视频| 少妇人妻互换不带套| 亚洲一区中文| 5月婷婷6月丁香| 亚洲狼人精品一区二区三区| 精品国偷自产一区二区三区| 午夜久久久久| 精品久久久无码人妻字幂| 一区二区中文| 97av中文字幕| 国产精品va| www.国产在线视频| 亚洲精品少妇| 乱人伦xxxx国语对白| 亚洲欧洲另类| 国产成人精品视频免费看| 亚洲永久字幕| 少妇高潮喷水久久久久久久久久| 国产精品一页| 国产免费人做人爱午夜视频| 日韩精品亚洲专区| 少妇一级淫免费放| 国内外成人在线| 色欲欲www成人网站| 成人一道本在线| 中文字幕乱码在线| 久久在线观看免费| 精品无码人妻一区二区免费蜜桃| 欧美高清一级片在线观看| 日本视频在线免费| 亚洲免费看黄网站| 国产一级做a爰片在线看免费| 亚洲福利一区二区三区| 草久视频在线观看| 欧美亚洲国产bt| 国产又黄又粗又长| 亚洲成人教育av| 欧美成人片在线| 日韩在线视频观看| 色网在线观看| 57pao成人永久免费视频| 国产成人免费| 99视频免费观看蜜桃视频| 欧美丝袜足交| 亚洲综合欧美日韩| 亚洲一本视频| 午夜免费高清视频| 国产成人免费av在线| 精品人妻一区二区三区香蕉| 国产精品天干天干在观线| 久久综合亚洲色hezyo国产| 欧美丝袜第一区| 国产精品视频久久久久久| 亚洲аv电影天堂网| 国产美女性感在线观看懂色av| 久久精品男人天堂| 少妇视频一区| 91社区国产高清| 免费精品国产的网站免费观看| 曰韩不卡视频| 国产欧美一级| 国产毛片久久久久久| 91视频在线观看免费| 国产极品美女在线| 精品日韩美女的视频高清| 国产精品久久久久毛片| 精品偷拍一区二区三区在线看| 欧美三级黄网| 日本韩国在线不卡| 久久九九精品视频| 日本福利一区二区三区| 国产精品扒开腿做爽爽爽软件| 国产高潮免费视频| 97久久久精品综合88久久| 国产一区二区精彩视频| 色婷婷狠狠综合| 国精产品乱码一区一区三区四区| 丝袜美腿精品国产二区| 天堂√中文最新版在线| 91嫩草在线| 91一区二区三区四区| 精品中文字幕av| 老司机精品视频在线| 久久久亚洲av波多野结衣| 亚洲五码中文字幕| av中文字幕在线免费观看| 一区二区三区视频观看| 国产免费拔擦拔擦8x高清在线人| 5566中文字幕一区二区| 久久精品播放| 九热视频在线观看| www国产精品av| 日韩精品在线不卡| 精品1区2区在线观看| 4438x成人网全国最大| 国产主播欧美精品| 成人一区二区| 欧美一级特黄a| 国产欧美日韩综合精品一区二区| 中文字幕视频网站| 精品丝袜一区二区三区| 一区二区乱码| 欧美日韩一区二区三区在线视频 | 欧美成人午夜77777| 国产精品一线二线三线| 国产成人在线观看| 免费看一级一片| 精品国产免费人成在线观看| 污视频在线免费观看网站| 97自拍视频| 伊人精品成人久久综合软件| 精品国产乱码久久久久夜深人妻| 一区二区免费在线| 欧美亚洲精品在线观看| 亚州欧美日韩中文视频| 另类ts人妖一区二区三区| 国产原创中文在线观看| 91在线观看下载| 久久亚洲精品石原莉奈| 亚洲欧洲xxxx| 成人免费毛片嘿嘿连载视频…| 亚洲精品视频一区二区三区| 久久aⅴ国产欧美74aaa| 欧美黑人一级片| 亚洲黄色av女优在线观看| 免费h在线看| 欧洲精品久久| 精品一区二区三区不卡| 高h视频免费观看| 精品国产百合女同互慰| 两个人看的在线视频www| 欧美一区二区三区在线免费观看| 蜜桃一区二区三区在线观看| 亚洲综合久久av一区二区三区| 欧美一区二视频| а√天堂资源官网在线资源| 欧美凹凸一区二区三区视频| 麻豆精品在线看| 久久国产免费观看| 日韩精品在线视频美女| 欧美一级在线| 日韩视频免费播放| 国产日韩三级在线| 国产免费黄色网址| 国语对白做受69| 成人系列视频| av漫画在线观看| 欧美性大战久久久| 日本在线观看大片免费视频| 久久精品国产一区二区三区日韩| 奇米777欧美一区二区| 久久久综合久久| 一区二区欧美久久| 国产精品网址|