日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

JavaScript ES15 新特性正式發布!全網最詳細講解!

來源: 責編: 時間:2024-07-02 17:38:15 216觀看
導讀2024 年 6 月 26 日,第 127 屆 Ecma 大會批準了 ECMAScript 2024 語言規范,這意味著它現在正式成為標準。新特性如下:Object.groupBy、Map.groupByPromise.withResolversString.prototype.isWellFormed、String.prototyp

2024 年 6 月 26 日,第 127 屆 Ecma 大會批準了 ECMAScript 2024 語言規范,這意味著它現在正式成為標準。LuH28資訊網——每日最新資訊28at.com

新特性如下:LuH28資訊網——每日最新資訊28at.com

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

圖片圖片LuH28資訊網——每日最新資訊28at.com

接下來給大家講講這些新特性吧!LuH28資訊網——每日最新資訊28at.com

Object.groupBy、Map.groupBy

背景 & 使用

不知道你們有沒有遇到過這樣的類似的需求,比如現在有以下的數據,我想要按照年齡 age 字段,給這些數據分個組,那你們會怎么做呢?LuH28資訊網——每日最新資訊28at.com

圖片圖片LuH28資訊網——每日最新資訊28at.com

其實可以直接使用 reduce 這個數組方法去做,就可以實現我們想要的效果LuH28資訊網——每日最新資訊28at.com

圖片圖片LuH28資訊網——每日最新資訊28at.com

圖片圖片LuH28資訊網——每日最新資訊28at.com

但是有一個lodash的方法,叫groupBy,可以很簡單做到我們想要的效果LuH28資訊網——每日最新資訊28at.com

圖片圖片LuH28資訊網——每日最新資訊28at.com

這個方法很好用,但他是 lodash 的方法,而不是原生的,要是他是原生的就好了~~LuH28資訊網——每日最新資訊28at.com

然而,原生已經支持了這個方法!!!在 Object 身上!請看下方的代碼,但是需要在 谷歌瀏覽器117以上的版本 才能運行LuH28資訊網——每日最新資訊28at.com

圖片圖片LuH28資訊網——每日最新資訊28at.com

同時也支持了Map.groupBy這個方法,但是我感覺這個方法不太實用。。。。。LuH28資訊網——每日最新資訊28at.com

圖片圖片LuH28資訊網——每日最新資訊28at.com

兼容性

圖片圖片LuH28資訊網——每日最新資訊28at.com

LuH28資訊網——每日最新資訊28at.com

圖片圖片LuH28資訊網——每日最新資訊28at.com

LuH28資訊網——每日最新資訊28at.com

Promise.withResolvers

背景 & 使用

有時候我們需要把 Promise 的 resolve 或者 reject 這兩個參數給取出來,去實現某種目的。LuH28資訊網——每日最新資訊28at.com

就比如下面例子,我想手動控制 Promise 的 fullfiled 的時機,所以需要把 resolve 給取出來,然后在我覺得適當的時機去執行這個 resolve,這樣 Promise 就變 fullfiled 了。LuH28資訊網——每日最新資訊28at.com

圖片圖片LuH28資訊網——每日最新資訊28at.com

但是這樣挺麻煩的,我總是得定義一個額外的變量去存儲這個 resolve。LuH28資訊網——每日最新資訊28at.com

Promise.withResolvers就是為了解決這件事情。LuH28資訊網——每日最新資訊28at.com

它的作用是把 Promise實例、resolve、reject 解構出來供我們使用,還是剛剛的例子,使用Promise.withResolvers。LuH28資訊網——每日最新資訊28at.com

圖片圖片LuH28資訊網——每日最新資訊28at.com

兼容性

圖片圖片LuH28資訊網——每日最新資訊28at.com

LuH28資訊網——每日最新資訊28at.com

String.prototype.isWellFormed、String.prototype.toWellFormed

JavaScript 中的字符串是UTF-16編碼的。UTF-16編碼中有代理對的概念,這一概念在UTF-16字符、Unicode 碼位和字素簇部分有詳細介紹。LuH28資訊網——每日最新資訊28at.com

isWellFormed

isWellFormed()讓你能夠測試一個字符串是否是格式正確的(即不包含單獨代理項)。由于引擎能夠直接訪問字符串的內部表示,與自定義實現相比 isWellFormed() 更高效。如果你需要將字符串轉換為格式正確的字符串,可以使用 toWellFormed()方法。isWellFormed()讓你可以對格式正確和格式錯誤的字符串進行不同的處理,比如拋出一個錯誤或將其標記為無效。LuH28資訊網——每日最新資訊28at.com

圖片圖片LuH28資訊網——每日最新資訊28at.com

LuH28資訊網——每日最新資訊28at.com

如果傳遞的字符串格式不正確,encodeURI會拋出錯誤。可以通過使用isWellFormed()在將字符串傳遞給 encodeURI() 之前測試字符串來避免這種情況。LuH28資訊網——每日最新資訊28at.com

圖片圖片LuH28資訊網——每日最新資訊28at.com

LuH28資訊網——每日最新資訊28at.com

圖片圖片LuH28資訊網——每日最新資訊28at.com

LuH28資訊網——每日最新資訊28at.com

toWellFormed

toWellFormed()迭代字符串的碼元,并將任何單獨代理項替換為Unicode替換字符U+FFFD。這確保了返回的字符串格式正確并可用于期望正確格式字符串的函數,比如encodeURI。由于引擎能夠直接訪問字符串的內部表示,與自定義實現相比toWellFormed()更高效。LuH28資訊網——每日最新資訊28at.com

當在某些上下文中使用格式不正確的字符串時,例如TextEncoder,它們會自動轉換為使用相同替換字符的格式正確的字符串。當單獨代理項被呈現時,它們也會呈現為替換字符(一個帶有問號的鉆石形狀)。LuH28資訊網——每日最新資訊28at.com

圖片圖片LuH28資訊網——每日最新資訊28at.com

LuH28資訊網——每日最新資訊28at.com

如果傳遞的字符串格式不正確,encodeURI會拋出錯誤。可以先通過使用toWellFormed()將字符串轉換為格式正確的字符串來避免這種情況。LuH28資訊網——每日最新資訊28at.com

圖片圖片LuH28資訊網——每日最新資訊28at.com

圖片圖片LuH28資訊網——每日最新資訊28at.com

LuH28資訊網——每日最新資訊28at.com

Atomics.waitAsync()

背景 & 使用

Atomics.waitAsync()靜態方法異步等待共享內存的特定位置并返回一個Promise。LuH28資訊網——每日最新資訊28at.com

與Atomics.wait()不同,waitAsync是非阻塞的且可用于主線程。語法如下:LuH28資訊網——每日最新資訊28at.com

圖片圖片LuH28資訊網——每日最新資訊28at.com

LuH28資訊網——每日最新資訊28at.com

此操作僅適用于基于SharedArrayBuffer的 Int32Array或 BigInt64Array 視圖。LuH28資訊網——每日最新資訊28at.com

舉一個簡單的例子,給定一個共享的 Int32Array:LuH28資訊網——每日最新資訊28at.com

圖片圖片LuH28資訊網——每日最新資訊28at.com

LuH28資訊網——每日最新資訊28at.com

令一個讀取線程休眠并在位置 0 處等待,預期該位置的值為 0。result.value 將是一個 Promise:LuH28資訊網——每日最新資訊28at.com

圖片圖片LuH28資訊網——每日最新資訊28at.com

LuH28資訊網——每日最新資訊28at.com

在該讀取線程或另一個線程中,對內存位置 0 調用以令該 Promise 解決為 "ok":LuH28資訊網——每日最新資訊28at.com

圖片圖片LuH28資訊網——每日最新資訊28at.com

LuH28資訊網——每日最新資訊28at.com

如果它沒有解決為 "ok",則共享內存該位置的值不符合預期(value 將是 "not-equal" 而不是一個 Promise)或已經超時(該 Promise 將解決為 "time-out")LuH28資訊網——每日最新資訊28at.com

兼容性

圖片圖片LuH28資訊網——每日最新資訊28at.com

LuH28資訊網——每日最新資訊28at.com

正則表達式 v 標識

RegExp v 標志是 u 標志的超集,并提供了另外兩個功能:LuH28資訊網——每日最新資訊28at.com

  • 字符串的 Unicode 屬性:通過 Unicode 屬性轉義,可以使用字符串的屬性。

圖片圖片LuH28資訊網——每日最新資訊28at.com

LuH28資訊網——每日最新資訊28at.com

  • 設置符號:允許在字符類之間進行集合操作。

圖片圖片LuH28資訊網——每日最新資訊28at.com

LuH28資訊網——每日最新資訊28at.com

在 JavaScript 中,使用 "u" 標志的正則表達式進入 Unicode 模式,它擴展了正則表達式的處理能力以包含 Unicode 序列,而非僅限于 ASCII 字符集。這樣做有多種好處:LuH28資訊網——每日最新資訊28at.com

  • Unicode 字符的準確處理: 不加 "u" 標志的正則表達式可能無法正確處理超出基本多文種平面(BMP)的 Unicode 字符。啟用 "u" 標志允許正則表達式匹配任何有效的 Unicode 字符。
  • 量詞行為的變化: 在啟用了 "u" 標志的情況下,量詞(如 *、+、?、{n}、{n,} 和 {n,m})將適用于任何有效的 Unicode 字符,而不僅是 ASCII 字符。
  • 支持 Unicode 屬性轉義: 使用 "/p{...}" 和 "/P{...}" 轉義序列,可以分別匹配或排除具有特定 Unicode 屬性的字符,如 "/p{Script=Arabic}" 可以匹配所有阿拉伯腳本的字符。
  • Unicode 轉義的正確處理: Unicode 模式允許使用 "/u{...}" 表示 Unicode 字符,其中的 {...} 是一個十六進制數。
  • 正則表達式方法行為的改進: 在 Unicode 模式下,例如 String.prototype.match()、String.prototype.replace()、String.prototype.search() 和 RegExp.prototype.exec() 等方法的返回結果更為精確。

本文鏈接:http://www.www897cc.com/showinfo-26-98201-0.htmlJavaScript ES15 新特性正式發布!全網最詳細講解!

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: ASP.NET Core 極簡 API 在 .NET 6 中的新特性探索

下一篇: 十個Python腳本,輕松實現日常任務自動化

標簽:
  • 熱門焦點
  • Find N3入網:最高支持16+1TB

    OPPO將于近期登場的Find N3折疊屏目前已經正式入網,型號為PHN110。本次Find N3在外觀方面相比前兩代有很大的變化,不再是小號的橫向折疊屏,而是跟別的廠商一樣采用了較為常見的
  • K60 Pro官方停產 第三方瞬間漲價

    雖然沒有官方宣布,但Redmi的一些高管也已經透露了,Redmi K60 Pro已經停產且不會補貨,這一切都是為了即將到來的K60 Ultra鋪路,屬于廠家的正常操作。但有意思的是該機在停產之后
  • 對標蘋果的靈動島 華為帶來實況窗功能

    繼蘋果的靈動島之后,華為也在今天正式推出了“實況窗”功能。據今天鴻蒙OS 4.0的現場演示顯示,華為的實況窗可以更高效的展現出實時通知,比如鎖屏上就能看到外賣、打車、銀行
  • 5月iOS設備好評榜:iPhone 14僅排第43?

    來到新的一月,安兔兔的各個榜單又重新匯總了數據,像安卓陣營的榜單都有著比較大的變動,不過iOS由于設備的更新換代并沒有那么快,所以相對來說變化并不大,特別是iOS好評榜,老款設
  • .NET 程序的 GDI 句柄泄露的再反思

    一、背景1. 講故事上個月我寫過一篇 如何洞察 C# 程序的 GDI 句柄泄露 文章,當時用的是 GDIView + WinDbg 把問題搞定,前者用來定位泄露資源,后者用來定位泄露代碼,后面有朋友反
  • 每天一道面試題-CPU偽共享

    前言:了不起:又到了每天一到面試題的時候了!學弟,最近學習的怎么樣啊 了不起學弟:最近學習的還不錯,每天都在學習,每天都在進步! 了不起:那你最近學習的什么呢? 了不起學弟:最近在學習C
  • 2021中國國際消費電子博覽會與青島國際軟件融合創新博覽會新聞發布會隆重舉行

    9月18日,2021中國國際消費電子博覽會與青島國際軟件融合創新博覽會新聞發布會在青島國際新聞中心隆重舉行。發布會上青島市政府領導聯袂出席,對本次雙展會情
  • 電博會上海爾智家模擬500平大平層,還原生活空間沉浸式體驗

    電博會為了更好地讓參展觀眾真正感受到智能家居的絕妙之處,海爾智家的程傳嶺先生同樣介紹了展會上海爾智家的模擬500平大平層,還原生活空間沉浸式體驗。程傳
  • “買真退假” 這種“羊毛”不能薅

    □ 法治日報 記者 王春   □ 本報通訊員 胡佳麗  2020年初,還在上大學的小東加入了一個大學生兼職QQ群。群主“七王”在群里介紹一些刷單賺
Top 主站蜘蛛池模板: 岳西县| 龙岩市| 蓬莱市| 英山县| 武鸣县| 湘阴县| 十堰市| 滦南县| 黄浦区| 六安市| 榆中县| 库尔勒市| 永泰县| 集安市| 太康县| 金乡县| 泽州县| 莱芜市| 寻乌县| 高碑店市| 赤峰市| 林芝县| 台北市| 顺义区| 南丹县| 武川县| 韶关市| 巴彦淖尔市| 北川| 伊宁市| 新宁县| 晋宁县| 长岭县| 海伦市| 崇州市| 西畴县| 阜阳市| 汉川市| 海南省| 开封市| 铜鼓县|