自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

ES15 中最具變革性的五個(gè) JavaScript 特性

開發(fā) 前端
隨著 ES15 和有前途的提案的推出,JS 功能有了全新的升級(jí)。從復(fù)雜的異步功能到語法數(shù)組糖和現(xiàn)代正則表達(dá)式,JavaScript 編碼變得比以往任何時(shí)候都更容易、更快捷。

隨著 ES15 和有前途的提案的推出,JS 功能有了全新的升級(jí)。從復(fù)雜的異步功能到語法數(shù)組糖和現(xiàn)代正則表達(dá)式,JavaScript 編碼變得比以往任何時(shí)候都更容易、更快捷。

1. 原生數(shù)組分組功能現(xiàn)已推出

Object.groupBy():

從字面上理解,這是讓dinosaur Lodash 存活下來的唯一東西 — — 不再存在了!

我原本期望有一個(gè)新的實(shí)例方法,如 Array.prototype.groupBy,但不知出于什么原因,他們把它變成了靜態(tài)的。

然后我們用 Map.groupBy 來用對(duì)象鍵進(jìn)行分組:

不過,幾乎沒有人會(huì)以這種方式對(duì)數(shù)組進(jìn)行分組,因此這種做法可能不那么受歡迎。

2. 從外部解決承諾 — 現(xiàn)代方式

使用 Promise.withResolvers()。

從外部解決承諾很普遍,以前我們必須使用 Deferred 類來完成此操作:

或者從 NPM 安裝 — — 還有一個(gè)依賴項(xiàng)!

但是現(xiàn)在有了 ES15 中的 Promise.withResolvers():

看看我如何快速承諾事件流 — — 等待可觀察的:

3. 緩沖區(qū)性能升級(jí)

緩沖區(qū)是用于存儲(chǔ)應(yīng)用生成的臨時(shí)數(shù)據(jù)的微型數(shù)據(jù)存儲(chǔ)。

它們使在管道中跨各個(gè)階段傳輸和處理數(shù)據(jù)變得非常容易。

管道如下:

文件處理:輸入文件 → 緩沖區(qū) → 處理 → 新緩沖區(qū) → 輸出文件

視頻流:網(wǎng)絡(luò)響應(yīng) → 緩沖區(qū) → 顯示視頻幀

餐廳排隊(duì):接待顧客 → 排隊(duì)/緩沖 → 服務(wù)顧客

使用緩沖區(qū),每個(gè)階段以不同的速度獨(dú)立處理數(shù)據(jù)。

但是,當(dāng)通過管道的數(shù)據(jù)超過緩沖區(qū)容量時(shí)會(huì)發(fā)生什么?

以前我們必須將當(dāng)前數(shù)據(jù)的所有緩沖區(qū)復(fù)制到更大的緩沖區(qū)。

這對(duì)性能影響很大,尤其是當(dāng)管道中有大量數(shù)據(jù)時(shí)。

ES15 為我們提供了解決此問題的方法:可調(diào)整大小的數(shù)組緩沖區(qū)。

4. 異步升級(jí)

Atomics.waitAsync():ES2024 中另一個(gè)強(qiáng)大的異步編碼功能:

當(dāng) 2 個(gè)代理共享一個(gè)緩沖區(qū)時(shí)……

代理 1“休眠”并等待代理 2 完成任務(wù)。

當(dāng)代理 2 完成后,它會(huì)使用共享緩沖區(qū)作為通道進(jìn)行通知。

如果您認(rèn)為這與普通的 async/await 類似,那您就完全正確了。

但最大的區(qū)別在于:這兩個(gè)代理可以存在于完全不同的代碼上下文中 — 它們只需要訪問同一個(gè)緩沖區(qū)。

并且:多個(gè)代理可以在不同時(shí)間訪問或等待共享緩沖區(qū) — 其中任何一個(gè)都可以通知“喚醒”所有其他代理。

它就像一個(gè) P2P 網(wǎng)絡(luò);async/await 就像客戶端-服務(wù)器請(qǐng)求-響應(yīng)。

5. 正則表達(dá)式與標(biāo)志和集合操作

一項(xiàng)全新功能,使正則表達(dá)式更加簡(jiǎn)潔直觀。

使用富有表現(xiàn)力的模式查找和操作復(fù)雜字符串 — 借助集合操作:

匹配不斷增加的 Unicode 字符集,例如:

表情符號(hào):??、??、??、?? 等。

重音字母:é、à、?、? 等。

符號(hào)和非拉丁字符:?、?、€、£、μ、¥ 等

因此,我們?cè)谶@里使用 Unicode 正則表達(dá)式和 v 標(biāo)志來匹配所有希臘字母:

寫在最后的想法

總體而言,這對(duì)于 JavaScript 來說是一次重大飛躍,具有現(xiàn)代開發(fā)所必需的幾項(xiàng)功能。

幫助您編寫更簡(jiǎn)潔、更具表現(xiàn)力和更清晰的更干凈的代碼。

責(zé)任編輯:華軒 來源: web前端開發(fā)
相關(guān)推薦

2024-06-14 10:22:55

2024-07-17 13:43:04

2024-08-01 08:38:59

2024-07-25 08:37:48

2024-07-30 08:40:00

2024-08-12 08:36:28

2024-08-16 09:14:53

2024-08-05 08:38:13

2024-07-02 08:36:09

JavaScriptUnicode模式

2024-08-19 08:35:11

2024-02-19 10:15:37

JavaScript正則表達(dá)式ECMAScript

2019-01-23 09:15:30

物聯(lián)網(wǎng)IOT技術(shù)

2024-11-26 08:20:53

程序數(shù)據(jù)歸檔庫

2022-09-30 14:00:50

JavaScrip新特性代碼

2024-01-11 12:17:28

Linux系統(tǒng)命令

2022-08-05 13:14:25

ES2022JavaScript代碼

2015-07-29 10:46:20

Java錯(cuò)誤

2012-07-17 11:04:04

Office 15

2024-07-31 08:38:36

2023-11-26 17:54:07

JavaScript開發(fā)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)