ES2022 中的4個最重要的特性
ECMAScript 2022 是一項新的 JavaScript 標準,將於 2022 年 6 月釋出。
1. 陣列中的at()方法
ES2022將為我們提供一種可能性,即從末端索引類似陣列的物件。這是一個很小的功能,但它提高了處理陣列或字串時的核心可讀性。
At()方法中的正數與[]索引的作用相同,但如果是負數,則允許從末尾訪問數值。
原來:
const arr = [1,2,3,4] arr[arr.length - 2] // 3 arr.slice(-2)[0] // 3 const str = "1234" str[str.length - 2] // '3' str.slice(-2)[0] // '3' |
新的at()方法:
const arr = [1,2,3,4] arr.at(-2) // 3 const str = "1234" str.at(-2) // '3' |
2. 錯誤原因
.cause物件上的.cause屬性將允許我們指定哪個錯誤導致其他錯誤。非常不言而喻吧?在這裡你可以看到這個新功能的一個使用例子。
try { doSomeComputationThatThrowAnError() } catch (error) { throw new Error('I am the result of another error', { cause: error }) } |
錯誤原因將是一個完美的方法,可以將錯誤連在一起,這在其他程式語言如Java中是可能的。
3. 頂層的await
你知道你不能在函式之外的程式碼中直接使用await嗎?如果不知道,那麼這對你來說不是什麼大問題。但對於其他人來說--不必擔心,因為ES2022將改變這一點。
- 它允許動態地載入模組
const serviceName = await fetch("https://example.com/what-service-should-i-use") const service = await import(`/services/${serviceName}.js`) // OR const params = new URLSearchParams(location.search); const theme = params.get('theme'); const stylingFunctions = await import(`/styling-functions-${theme}.js`); |
- 它允許有條件地渲染模組
const date = new Date() if(date.getFullYear() === 2023) { await require('/special-code-for-2023-year.js') } |
4. 私有槽slot和方法
純Javascript中的類從ES6開始就存在了,但與物件導向的語言相比,它們的開發程度要低很多。許多開發者使用Typescript來包含其中的一些功能,現在我們可以看到在純Javascript類中被實現。
私有槽是其中之一。它們只不過是類的私有屬性。ES2022將為我們提供建立它們的可能性,當我們試圖在類之外訪問它們時,會得到一個錯誤。私有方法也是如此。有趣的是,JS團隊選擇給他們字首(這與JS的傳統有關嗎?)
class Human { name = "John"; setName(name) { this.name = name; } } const human = new Human() human.name = 'Amy' // ERROR! human.setName('Amy') // OK |
私有方法:
class Human { name = "John"; constructor(name) { this.setName('Amy') // OK } setName(name) { this.name = name; } } const human = new Human() human.setName('Amy') // ERROR! |
相關文章
- ES2022新特性
- CSS三個非常重要的特性分享!CSS
- Python中XGBoost的特性重要性和特性選擇Python
- 三,ES6中需要注意的特性(重要)
- Go 語言的 4 個特性改動Go
- 專案成本管理的4個重要步驟
- Go最重要的特性是invisible - JackGo
- 【譯】Visual Studio 17.8 中我最喜歡的特性
- Java中獲取URI最後一個路徑段的4種方法Java
- 伺服器中的幾個重要引數伺服器
- 【盤點】Python中6個最重要的庫!Python
- JavaScript ES2019 中的 8 個新特性JavaScript
- 技術成長中的3個重要問題
- CSS中重要的BFCCSS
- PHP trait 特性在 Laravel 中的使用個人心得PHPAILaravel
- IT綜合是IT行業中的一個重要領域行業
- CRM客戶管理系統的五大重要特性
- 4 月 COPR 中的 4 個新酷專案
- 4 個 TypeScript 5.1 Beta 版重要更新內容TypeScript
- Spring中重要的註解Spring
- 2021 關於 Flutter v2 我整理了16個重要特性Flutter
- 前端知識科普:HTML5中重要的6個點!前端HTML
- 分享Java面試中的幾個重要基礎問題!Java面試
- 5個重要的CCNP協議協議
- jQuery獲取class相同的div中的最後一個jQuery
- IntelliJ IDEA中我最愛的10個快捷操作IntelliJIdea
- 企業需要ERP系統的八大理由,最後一個尤其重要
- ES6中常用的10個新特性講解
- ES13中11個令人驚歎的 JavaScript 新特性JavaScript
- C# 中的特性 AttributeC#
- PMO在企業專案管理中的五個重要作用專案管理
- 4個關於中臺最常見的誤區,用最通俗的話給你一次解釋清楚
- CSS 中重要的層疊概念CSS
- python中重要的模組--asyncioPython
- Python3.9的7個特性Python
- Filament 被低估的5個特性
- ES2022經Ecma大會批准
- 幾個重要的內建函式函式