成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

JavaScript ES15 新特性正式發(fā)布!全網(wǎng)最詳細(xì)講解!

開發(fā) 前端
在 JavaScript 中,使用 "u" 標(biāo)志的正則表達(dá)式進(jìn)入 Unicode 模式,它擴(kuò)展了正則表達(dá)式的處理能力以包含 Unicode 序列,而非僅限于 ASCII 字符集。

2024 年 6 月 26 日,第 127 屆 Ecma 大會批準(zhǔn)了 ECMAScript 2024 語言規(guī)范,這意味著它現(xiàn)在正式成為標(biāo)準(zhǔn)。

新特性如下:

  • Object.groupBy、Map.groupBy
  • Promise.withResolvers
  • String.prototype.isWellFormed、String.prototype.toWellFormed
  • Atomics.waitAsync()
  • 正則表達(dá)式 v 標(biāo)識

圖片圖片

接下來給大家講講這些新特性吧!

Object.groupBy、Map.groupBy

背景 & 使用

不知道你們有沒有遇到過這樣的類似的需求,比如現(xiàn)在有以下的數(shù)據(jù),我想要按照年齡 age 字段,給這些數(shù)據(jù)分個組,那你們會怎么做呢?

圖片圖片

其實(shí)可以直接使用 reduce 這個數(shù)組方法去做,就可以實(shí)現(xiàn)我們想要的效果

圖片圖片

圖片圖片

但是有一個lodash的方法,叫g(shù)roupBy,可以很簡單做到我們想要的效果

圖片圖片

這個方法很好用,但他是 lodash 的方法,而不是原生的,要是他是原生的就好了~~

然而,原生已經(jīng)支持了這個方法!?。≡?Object 身上!請看下方的代碼,但是需要在 谷歌瀏覽器117以上的版本 才能運(yùn)行

圖片圖片

同時也支持了Map.groupBy這個方法,但是我感覺這個方法不太實(shí)用。。。。。

圖片圖片

兼容性

圖片圖片

圖片圖片

Promise.withResolvers

背景 & 使用

有時候我們需要把 Promise 的 resolve 或者 reject 這兩個參數(shù)給取出來,去實(shí)現(xiàn)某種目的。

就比如下面例子,我想手動控制 Promise 的 fullfiled 的時機(jī),所以需要把 resolve 給取出來,然后在我覺得適當(dāng)?shù)臅r機(jī)去執(zhí)行這個 resolve,這樣 Promise 就變 fullfiled 了。

圖片圖片

但是這樣挺麻煩的,我總是得定義一個額外的變量去存儲這個 resolve。

Promise.withResolvers就是為了解決這件事情。

它的作用是把 Promise實(shí)例、resolve、reject 解構(gòu)出來供我們使用,還是剛剛的例子,使用Promise.withResolvers。

圖片圖片

兼容性

圖片圖片

String.prototype.isWellFormed、String.prototype.toWellFormed

JavaScript 中的字符串是UTF-16編碼的。UTF-16編碼中有代理對的概念,這一概念在UTF-16字符、Unicode 碼位和字素簇部分有詳細(xì)介紹。

isWellFormed

isWellFormed()讓你能夠測試一個字符串是否是格式正確的(即不包含單獨(dú)代理項(xiàng))。由于引擎能夠直接訪問字符串的內(nèi)部表示,與自定義實(shí)現(xiàn)相比 isWellFormed() 更高效。如果你需要將字符串轉(zhuǎn)換為格式正確的字符串,可以使用 toWellFormed()方法。isWellFormed()讓你可以對格式正確和格式錯誤的字符串進(jìn)行不同的處理,比如拋出一個錯誤或?qū)⑵錁?biāo)記為無效。

圖片圖片

如果傳遞的字符串格式不正確,encodeURI會拋出錯誤??梢酝ㄟ^使用isWellFormed()在將字符串傳遞給 encodeURI() 之前測試字符串來避免這種情況。

圖片圖片

圖片圖片

toWellFormed

toWellFormed()迭代字符串的碼元,并將任何單獨(dú)代理項(xiàng)替換為Unicode替換字符U+FFFD。這確保了返回的字符串格式正確并可用于期望正確格式字符串的函數(shù),比如encodeURI。由于引擎能夠直接訪問字符串的內(nèi)部表示,與自定義實(shí)現(xiàn)相比toWellFormed()更高效。

當(dāng)在某些上下文中使用格式不正確的字符串時,例如TextEncoder,它們會自動轉(zhuǎn)換為使用相同替換字符的格式正確的字符串。當(dāng)單獨(dú)代理項(xiàng)被呈現(xiàn)時,它們也會呈現(xiàn)為替換字符(一個帶有問號的鉆石形狀)。

圖片圖片

如果傳遞的字符串格式不正確,encodeURI會拋出錯誤??梢韵韧ㄟ^使用toWellFormed()將字符串轉(zhuǎn)換為格式正確的字符串來避免這種情況。

圖片圖片

圖片圖片

Atomics.waitAsync()

背景 & 使用

Atomics.waitAsync()靜態(tài)方法異步等待共享內(nèi)存的特定位置并返回一個Promise。

與Atomics.wait()不同,waitAsync是非阻塞的且可用于主線程。語法如下:

圖片圖片

此操作僅適用于基于SharedArrayBuffer的 Int32Array或 BigInt64Array 視圖。

舉一個簡單的例子,給定一個共享的 Int32Array:

圖片圖片

令一個讀取線程休眠并在位置 0 處等待,預(yù)期該位置的值為 0。result.value 將是一個 Promise:

圖片圖片

在該讀取線程或另一個線程中,對內(nèi)存位置 0 調(diào)用以令該 Promise 解決為 "ok":

圖片圖片

如果它沒有解決為 "ok",則共享內(nèi)存該位置的值不符合預(yù)期(value 將是 "not-equal" 而不是一個 Promise)或已經(jīng)超時(該 Promise 將解決為 "time-out")

兼容性

圖片圖片

正則表達(dá)式 v 標(biāo)識

RegExp v 標(biāo)志是 u 標(biāo)志的超集,并提供了另外兩個功能:

  • 字符串的 Unicode 屬性:通過 Unicode 屬性轉(zhuǎn)義,可以使用字符串的屬性。

圖片圖片

  • 設(shè)置符號:允許在字符類之間進(jìn)行集合操作。

圖片圖片

在 JavaScript 中,使用 "u" 標(biāo)志的正則表達(dá)式進(jìn)入 Unicode 模式,它擴(kuò)展了正則表達(dá)式的處理能力以包含 Unicode 序列,而非僅限于 ASCII 字符集。這樣做有多種好處:

  • Unicode 字符的準(zhǔn)確處理: 不加 "u" 標(biāo)志的正則表達(dá)式可能無法正確處理超出基本多文種平面(BMP)的 Unicode 字符。啟用 "u" 標(biāo)志允許正則表達(dá)式匹配任何有效的 Unicode 字符。
  • 量詞行為的變化: 在啟用了 "u" 標(biāo)志的情況下,量詞(如 *、+、?、{n}、{n,} 和 {n,m})將適用于任何有效的 Unicode 字符,而不僅是 ASCII 字符。
  • 支持 Unicode 屬性轉(zhuǎn)義: 使用 "\p{...}" 和 "\P{...}" 轉(zhuǎn)義序列,可以分別匹配或排除具有特定 Unicode 屬性的字符,如 "\p{Script=Arabic}" 可以匹配所有阿拉伯腳本的字符。
  • Unicode 轉(zhuǎn)義的正確處理: Unicode 模式允許使用 "\u{...}" 表示 Unicode 字符,其中的 {...} 是一個十六進(jìn)制數(shù)。
  • 正則表達(dá)式方法行為的改進(jìn): 在 Unicode 模式下,例如 String.prototype.match()、String.prototype.replace()、String.prototype.search() 和 RegExp.prototype.exec() 等方法的返回結(jié)果更為精確。
責(zé)任編輯:武曉燕 來源: 前端之神
相關(guān)推薦

2024-08-05 08:38:13

2024-02-19 10:15:37

JavaScript正則表達(dá)式ECMAScript

2025-03-04 10:03:47

2024-01-09 12:06:55

MVCC并發(fā)控制MySQL

2012-08-02 17:38:38

瀏覽器

2011-07-29 09:31:32

JDK 7

2024-04-18 08:04:47

ElectronChrome升級

2020-09-17 13:10:54

Java1編程語言新特性

2019-03-29 09:51:23

軟件開發(fā)者 性能

2023-06-28 00:40:01

ECMAScriptWeakMapSymbol

2011-09-30 09:47:15

GNOME 3.2

2014-03-19 11:04:14

Java 8Java8特性

2022-06-24 08:33:13

ECMAScriptjavaScript

2024-06-28 11:39:21

2023-09-21 11:12:25

2020-11-04 11:05:38

JavaScript新特性前端

2010-03-05 08:56:14

JSFUnit 1.2

2023-11-30 08:32:31

OpenFeign工具

2023-01-31 07:36:25

JavaScript數(shù)組緩沖區(qū)

2017-09-22 14:04:33

前端Node.js新特性
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 国产精品久久久久久久久大全 | 日韩欧美一区二区三区免费观看 | 91久久精品一区二区二区 | 国产乱码精品一区二区三区五月婷 | 日本黄色免费大片 | 91麻豆蜜桃一区二区三区 | 日本高清精品 | 免费观看av网站 | 国产羞羞视频在线观看 | 一级黄a视频 | 视频在线一区二区 | 狠狠综合久久av一区二区小说 | www.夜夜草 | 久久精品亚洲成在人线av网址 | 精品亚洲一区二区三区 | 天天拍天天插 | 99精品久久 | 欧美精品99 | 日韩欧美福利视频 | 国产精品区一区二区三区 | 国产一级视频免费播放 | 麻豆精品久久久 | 亚洲一区二区av在线 | 亚洲精品国产一区 | 99re在线免费视频 | 日韩精品在线播放 | 色婷婷狠狠 | 成人国产在线视频 | 91一区二区在线观看 | 人人鲁人人莫人人爱精品 | 毛片免费观看 | 九九国产在线观看 | 国产精品久久久久久久模特 | 91免费电影| 精品一区二区观看 | 隔壁老王国产在线精品 | 亚洲成av人片在线观看无码 | 国产激情视频 | 精品国产欧美一区二区三区成人 | 91国在线| 91视频网址 |