ES2018又稱為ES9功能
今天,我們將展示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可以僅使用原始字符串:
s(dotAll)正則表達式的標誌
當前,正則表達式中的點(.)與行終止符不匹配(在ES2018之前)。 該建議指定正則表達式標誌/ s。
正則表達式命名為捕獲組
帶編號的捕獲組使您可以引用正則表達式匹配的字符串的特定部分。
每個捕獲組都分配有一個唯一的編號,並且可以使用該編號進行引用,但這會使正則表達式難以理解和重構。
對於任何標識符名稱,都可以使用(? ...)語法為捕獲組指定名稱。
然後,日期的正則表達式可以寫成/(? \\ d {4})-(? \\ d {2})-(? \\ d {2})/ u。 每個名稱都應該是唯一的。
剩餘/價差屬性
ECMAScript 6引入了用於數組解構分配的剩餘元素和用於數組文字的擴展元素。
此版本引入了用於對象解構分配的類似rest屬性和對象文字的散佈屬性。
正則表達式後置斷言
後向斷言有兩種版本:肯定的和否定的。
正向後斷言表示為(?<= ...),它們可確保其中包含的模式位於聲明之後的模式之前。
負向後的斷言表示為(?
正則表達式Unicode屬性轉義
JavaScript使您可以通過提及字符集的"名稱"來匹配字符。 另外,您可以通過在\\ p {}的花括號內提及其Unicode字符屬性來匹配字符。
該建議解決了所有上述問題:
· 創建支持Unicode的正則表達式不再麻煩。
· 不依賴運行時庫。
· 正則表達式模式緊湊且易讀-文件大小不再膨脹。
· 不再需要創建在生成時生成正則表達式的腳本。
· 從開發人員的角度來看,使用Unicode屬性轉義符的代碼將"自動"保持最新狀態:每當Unicode標準得到更新時,ECMAScript引擎就會更新其數據。
最終的原型
一旦您的Promise已通過一種方式或另一種方式結算,則最終回調將執行邏輯。 它絕對不會對您的諾言所實現的價值產生影響。
異步迭代
我們介紹了for-of迭代語句的一種變體,它在異步可迭代對象上進行迭代。 一個示例用法是:
結論
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)
閱讀更多 聞數起舞 的文章
關鍵字: ECMAScript 功能 腳本語言