大家好,我是若川。周末分享一篇相對簡單的文章。最近組織了源碼共度活動:1個月,200+人,一起讀了4周源碼,參與的小伙伴都表示收獲很大。如果感興趣可以點擊鏈接掃碼加我微信 ruochuan12。
另外:昨天的推文入門前端學習路線圖【送書】也可以留言參與。
前言
ES2021 或 ES12 在今年夏天早些時候發布(具體的ES2021新特性
,可以查看這里),現在我們來看看ES2022 會帶來什么有意思的新特性
。
在本文中中將介紹并解釋在規范的最新草案中已被接受的提案
。
?注:每個特性提案都遵循一個過程,在這個過程中,它經歷了不同的階段,直到
?stage 4
,這表明新增功能已準備好包含在正式的ECMAScript 標準
中,并將包含在最快的實用標準修訂版中。以下功能已經完成,處于stage 4
并已添加到ECMAScript 最新草案中。
聲明類的字段
?到目前為止,在ES規范中,類的字段定義和初始化是在類的構造函數中完成的。但是在新的提案中,類字段可以在類的頂層被定義和初始化
?

私有方法和字段
?用
?#前綴
來定義類的私有方法和字段。

類的靜態公共方法和字段
?在之前的類的字段和私有方法提案的基礎上,為JavaScript類增加了
?靜態公共字段
、靜態私有方法
和靜態私有字段
的特性。

正則匹配索引
?該提案提供了一個新的
?/d
flag,以獲得關于輸入字符串中每個匹配的開始和索引位置結束的額外信息。
舉個例子:




?注:包含 begin,但不包含
?end
Top-level await
?頂層的await允許在異步函數之外使用
?await關鍵字
。這個提案允許模塊當做大型異步函數
,所以這些ECMAScript模塊可以等待資源加載,這樣其他導入這些模塊的模塊在開始執行自己的代碼之前也要等待資源加載完再去執行

檢測私有字段
當我們試圖訪問一個沒有被聲明的公共字段時
,會得到未定義的結果
,同時訪問私有字段
會拋出一個異常
。我們根據這兩個行為來判斷是否含有公共字段和私有字段
。但是這個建議引入了一個更有趣的解決方案
,它包括使用in操作符
,如果指定的屬性/字段在指定的對象/類中,則返回真
,并且也能判斷私有字段

在所有內置的可索引數據上新增.at()方法
新增一個新的數組方法,通過給定的索引來獲取一個元素。當給定的索引為正數時,這個新方法的行為與使用括號符號的訪問相同,但是當我們給定一個負整數的索引時,它就像python的 "負數索引 "一樣工作,這意味著at()方法以負整數為索引,從數組的最后一項往后數。所以該方法可以被執行為array.at(-1),它的行為與array[array.length-1]相同,在下面的例子中可以看到

Object.hasOwn(object, property)
簡單講就是使用Object.hasOwn
來替代Object.prototype.hasOwnProperty.call
(太長了,不好看)

ECMAScript類靜態初始化塊
類靜態塊提議提供了一種優雅的方式,在類聲明/定義期間評估靜態初始化代碼塊,可以訪問類的私有字段

?注:Typescript4.4也做了支持
?
參考文獻
https://github.com/tc39/proposals/blob/master/finished-proposals.md
https://2ality.com/2021/09/class-static-block.html
https://tc39.es/process-document/
https://tc39.es/ecma262/
https://v8.dev/features/top-level-await
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/matchAll
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/at
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/static
最近組建了一個江西人的前端交流群,如果你是江西人可以加我微信?ruochuan12?私信 江西?拉你進群。
推薦閱讀
1個月,200+人,一起讀了4周源碼
我讀源碼的經歷
老姚淺談:怎么學JavaScript?
我在阿里招前端,該怎么幫你(可進面試群)
·················?若川簡介?·················
你好,我是若川,畢業于江西高校。現在是一名前端開發“工程師”。寫有《學習源碼整體架構系列》多篇,在知乎、掘金收獲超百萬閱讀。
從2014年起,每年都會寫一篇年度總結,已經寫了7篇,點擊查看年度總結。
同時,活躍在知乎@若川,掘金@若川。致力于分享前端開發經驗,愿景:幫助5年內前端人走向前列。
識別上方二維碼加我微信、拉你進源碼共讀群
今日話題
略。歡迎分享、收藏、點贊、在看我的公眾號文章~