JavaScript ES2018功能示例

ES2018又稱為ES9功能

JavaScript ES2018功能示例

Photo by Nijwam Swargiary on Unsplash

今天,我們將展示2015年以來的ECMAScript功能:

  • ES2015又稱ES6
  • ES2016又稱ES7
  • ES2017又稱為ES8
  • ES2018亦稱ES9
  • ES2019又稱為ES10

ES2020又稱ES11

介紹

ES2018(又稱ES9)是與2018年相對應的ECMAScript版本。此版本未包含與ES6(2015)中出現的功能一樣多的新功能。 但是,已合併了一些有用的功能。

本文在簡單代碼示例中介紹了ES2018提供的功能。 這樣,您無需複雜的解釋即可快速瞭解新功能。

當然,有必要具備JavaScript的基礎知識才能完全理解所介紹的最佳語言。

ES2018中的新JavaScript功能包括:

  • 解除模板字面量限制。
  • s(dotAll)標誌用於正則表達式。
  • 正則表達式命名捕獲組。
  • 剩餘/擴展屬性。
  • 正則表達式位於斷言之後。
  • 正則表達式Unicode屬性轉義。
  • 最終,Promise.prototype。
  • 異步迭代。

解除模板字面限制

提議的解決方案是將包含非法轉義序列的模板值的值設置為undefined。

仍然可以通過.raw訪問原始值,因此可能包含未定義值的嵌入式DSL可以僅使用原始字符串:

JavaScript ES2018功能示例

s(dotAll)正則表達式的標誌

當前,正則表達式中的點(.)與行終止符不匹配(在ES2018之前)。 該建議指定正則表達式標誌/ s。

JavaScript ES2018功能示例

正則表達式命名為捕獲組

帶編號的捕獲組使您可以引用正則表達式匹配的字符串的特定部分。

每個捕獲組都分配有一個唯一的編號,並且可以使用該編號進行引用,但這會使正則表達式難以理解和重構。

對於任何標識符名稱,都可以使用(? ...)語法為捕獲組指定名稱。

然後,日期的正則表達式可以寫成/(? \\ d {4})-(? \\ d {2})-(? \\ d {2})/ u。 每個名稱都應該是唯一的。

JavaScript ES2018功能示例

剩餘/價差屬性

ECMAScript 6引入了用於數組解構分配的剩餘元素和用於數組文字的擴展元素。

此版本引入了用於對象解構分配的類似rest屬性和對象文字的散佈屬性。

JavaScript ES2018功能示例


JavaScript ES2018功能示例

正則表達式後置斷言

後向斷言有兩種版本:肯定的和否定的。

正向後斷言表示為(?<= ...),它們可確保其中包含的模式位於聲明之後的模式之前。

負向後的斷言表示為(?

JavaScript ES2018功能示例

正則表達式Unicode屬性轉義

JavaScript使您可以通過提及字符集的"名稱"來匹配字符。 另外,您可以通過在\\ p {}的花括號內提及其Unicode字符屬性來匹配字符。

該建議解決了所有上述問題:

· 創建支持Unicode的正則表達式不再麻煩。

· 不依賴運行時庫。

· 正則表達式模式緊湊且易讀-文件大小不再膨脹。

· 不再需要創建在生成時生成正則表達式的腳本。

· 從開發人員的角度來看,使用Unicode屬性轉義符的代碼將"自動"保持最新狀態:每當Unicode標準得到更新時,ECMAScript引擎就會更新其數據。

最終的原型

一旦您的Promise已通過一種方式或另一種方式結算,則最終回調將執行邏輯。 它絕對不會對您的諾言所實現的價值產生影響。

JavaScript ES2018功能示例

異步迭代

我們介紹了for-of迭代語句的一種變體,它在異步可迭代對象上進行迭代。 一個示例用法是:

JavaScript ES2018功能示例

結論

JavaScript是一種實時語言,對於Web開發而言,這是非常有益的。 自2015年ES6出現以來,我們正在經歷該語言的蓬勃發展。

在這篇文章中,我們回顧了ES2018(又稱ES9)中出現的功能。

儘管這些功能中的許多功能對於Web應用程序的開發可能不是必需的,但它們提供了以前只有技巧或大量冗長才能實現的可能性。


(本文翻譯自Carlos Caballero的文章《JavaScript ES2018 Features With Examples》,參考:https://medium.com/better-programming/javascript-es2018-features-with-examples-30fda8ac50fa)


分享到:


相關文章: