當前位置:
首頁 > 科技 > ES8都有哪些新特性,你還在用ES6嗎?

ES8都有哪些新特性,你還在用ES6嗎?

作者 | Dor Moshe

翻譯 | 黑色巧克力

EcmaScript第8版已經發布,下面來看看它的一些新特性。

EcmaScript 8或EcmaScript 2017將於6月底由TC39正式發布。我們在去年似乎討論了很多關於EcmaScript的事情,那不是毫無價值的。目前的標準是每年發布一個新的ES規範版本。ES6發佈於2015年,ES7發佈於2016年,但有人記得ES5發布的時間嗎?那還是在2009年,在JavaScript的神奇崛起之前。

因此,EcmaScript作為一種穩定的語言跟隨JavaScript的發展而變化,現在我們需要將ES8輸入到詞典中。

說明書網頁(https://www.ecma-international.org/ecma-262/8.0/index.html)或PDF(https://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf)版本。在本文中,我們將通過代碼示例介紹ES8的主要新特性。

字元串填充

本節向字元串對象添加兩個函數:padStart和padEnd。

正如它們的名稱一樣,這些函數的目的是填充字元串的開始或結束,以便產生的字元串達到給定的長度。可以使用特定的字元或字元串來填充它,或者默認設置空格。下面是方法聲明:

這些函數的第一個參數是targetLength,這是結果字元串的總長度。第二個參數是用於填充源字元串的可選的padString。默認值是空格。

Object.values和Object.entries

Object.values方法返回給定對象自己的可枚舉屬性值的數組,與for in循環所提供的順序相同。這個函數的聲明是非常簡單的。

obj參數是操作的源對象。它可以是一個對象或數組(一個具有索引的對象,如[10、20、30]- > { 0:10,1:20,2:30 })。

Object.entries方法返回一個給定對象的可枚舉屬性[key, value]鍵值對的數組,與object.values的順序相同。這個函數的聲明也很簡單。

Object.getOwnPropertyDescriptors

getOwnPropertyDescriptors方法返回所有的屬性描述符指定的對象。一個對象的屬性描述符是直接在對象上定義的,並不是從對象的原型繼承的。該函數的聲明如下。

obj是源對象。返回的描述符對象的可能鍵是可配置的、可枚舉的、可寫的、可獲取和設置值。

描述符數據對於像裝飾器這樣的高級特性非常重要。

在函數參數列表和調用中允許尾部逗號

在函數參數中允許尾部逗號是編譯器在列表末尾添加不必要的逗號時不拋出錯誤(語法錯誤)的能力:

作為函數聲明,可以應用於函數的調用如下。

這個特性起源於對象常量和數組常量(10、20、30、)和{ x:1、}的逗號結尾。

非同步函數

async function聲明定義了一個非同步函數,它返回一個AsyncFunction對象。在內部,非同步函數與生成器很相似,但是它們沒有被轉換為生成器函數。

調用sayHello方法,2秒後將會列印Hello,es8。

現在輸出是這樣的:

這是因為函數調用不會阻塞流。

注意,async function總是返回一個應答,而一個wait關鍵字只能在用async關鍵字標記的函數中使用。

共享內存和原子

在共享內存時,多個線程可以在內存中讀取和寫入相同的數據。原子操作確保編寫和讀取可預測的值,原子操作時有序的並且不會被中斷。本節介紹了一個新的構造函數SharedArrayBuffer和使用靜態方法的命名空間對象Atomics。

Atomic對象是靜態方法(如Math)的對象,因此不能將其用作構造函數。該對象中的靜態方法示例如下:

add / sub —— 在一個特定的位置添加或減去一個值

and / or / xor —— 按位與、按位或、按位異或

load —— 在特定位置獲取值

明年的ES9 -取消模板字元串限制

使用帶標記的模板字元串(ES6),我們可以做一些事情,例如聲明一個模板解析函數,並根據邏輯返回一個值:

返回值是「ES 8 is awesome」。

對於esth 7返回值是「ES 7 is good」。

對於包含例如u或x的子字元串的模板有一個限制,ES9將處理這個限制問題。可以在MDN網站(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals)或TC39文件(https://tc39.github.io/proposal-template-literal-revision/)中閱讀更多信息。

總結

JavaScript總是在不斷更新。對規範採用新特性的過程是有計劃地和平穩推進的。在最後階段,TC39委員會確認了這些特性,並由核心開發人員實現。它們中的大多數已經是類型腳本語言、瀏覽器或其他的填充物的一部分,所以可以現在就去嘗試使用它們。

點擊展開全文

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 CSDN 的精彩文章:

阿里巴巴技術委員會主席王堅眼中的人工智慧
一位國外CEO的懺悔:我是如何燒掉一千萬美元的,難道裁員就可以活?

TAG:CSDN |

您可能感興趣

「蔚來」為你而來!ES8究竟有哪些獨特魅力?
蔚來赴美IPO,ES6年底上市,但ES8在哪兒?
從ES8到ES6,造車新勢力蔚來的未來在哪裡?
媒體用戶視角:開蔚來ES8去試駕ES6,我還能驕傲嗎?
蔚來ES8還沒大賣,ES6緊跟其後
愛馳首款純電SUV官圖發布,乍一看臉有點像ES8?
TESLA勁敵,蔚來ES8
作為一名特斯拉吹,我怎麼看「蔚來 ES8」?
傳統車VS新勢力 榮威MARVEL X/蔚來ES8選哪個?
終於駕駛了蔚來ES8 它當真是7座電動SUV的學霸?
具有領先性能、功率和面積比的GPU IP——The PowerVR Series8XT
蔚來ES8突襲而來,據說車載人工智慧NOMI,是真的嗎?
不用試來測去了,蔚來ES8所有價值點都在這了!
ES8尚未交付資金告急ES6勝算有多大?
街頭偶遇蔚來ES8,只論顏值,跟特斯拉比,你覺得怎麼樣?
ES8提車記,車主:看到內飾,果斷放棄「EX5」
不吹不黑!蔚來ES8的好與壞?
來也匆匆!ES8之後蔚來ES6已然在路上
試蔚來ES8,不完美,但很美好
又有大佬打賭了 這次賭注是一輛蔚來ES8!