JavaScript: ECMAScript 2018(ES2018)

kboypkb發表於2021-09-09

圖片描述

在最新的TC39會議上,選擇了將進入“ECMAScript®2018語言規範”(ES2018)的新功能。 自 合併以來已達到第4階段的所有提案都已被選中。 這篇文章讓我們快速瞭解了進入ES2018的功能。

Stage-4 TC39委員會有一個5階段的過程,從第0階段到第4階段,透過它開發新的語言功能。 第四階段是“完成”階段。GitHub上提供了第4階段提案列表

物件 Rest/Spread 屬性

在解構物件時,  允許您將物件的剩餘屬性收集到新物件上。 把它想象成吸引所有剩菜的神奇磁鐵。

圖片描述

我自己經常使用這個,特別是在React(Native)上下文中,我從this.props中獲取某些值供內部使用,然後透過再次傳播將所有其他道具轉發給返回的子元件。

圖片描述

另外,如果你稍微改變你的思維邏輯,物件休息屬性為你提供了一種以不可變的方式, .

非同步迭代

使用  我們得到非同步迭代器和非同步迭代。 非同步迭代器就像常規迭代器一樣,除了它們的next()方法之外,它返回一個{value,done}對的promise。 為了使用非同步迭代,我們現在可以使用帶有for ...ofloops的await關鍵字。

圖片描述

Promise.prototype.finally()

Promise.prototype.finally()最終確定整個promises實現,允許你註冊一個在一個promise被解決(被滿足或被拒絕)時被呼叫的回撥。

一個典型的用例是在fetch()請求之後隱藏一個微調器:而不是複製最後一個.then().catch()中的邏輯,現在可以將它放在.finally()

圖片描述

RegExp相關功能

共有4個“RegExp”相關提案進入ES2018:

  • ( )

我特別挖掘了“RegEx命名捕獲組”功能,因為它提高了可讀性:

圖片描述

有關這些功能的更多資訊可以在Mathias Bynens找到 - 這些建議背後的驅動力之一 - 他的部落格: 

其他新功能

最重要的是  著陸:當使用標記模板文字時,對轉義序列的限制被刪除,從而允許像 xerxes。 在此調整之前會丟擲一個錯誤,因為 x是十六進位制轉義的開始,而'erxes`不是有效的十六進位制值。

** 標記模板文字根據MDN:如果模板文字前面有表示式,則模板字串稱為“標記模板文字”。 在這種情況下,標記表示式(通常是函式)將使用已處理的模板文字進行呼叫,然後您可以在輸出之前對其進行操作。

現在怎麼辦?

請注意,並非所有瀏覽器都能提供所有這些功能。 意思是他們是Stage-4意味著他們已經完成了,並且瀏覽器供應商應該實現它們(一些已經有,其他人正在進行中)

至於未來,我已經在期待JavaScript的未來發展方向. 就像  已經讓我很興奮了

The examples embedded in this post are part of a talk on ESNext named “What’s next for JavaScript?”, which I recently gave at a  meetup. I’m currently still in the process of preparing the slides for publication. I’m available for bringing this talk at your meetup/conference.

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1916/viewspace-2810696/,如需轉載,請註明出處,否則將追究法律責任。

相關文章