深入 ES6 系列:介紹

歡迎觀看此系列新文。我們將概略介紹 JavaScript 的新版本「ECMAScript 6 (亦稱為 ES6)」。ES6 內含許多新功能,將使 JS 更強大且表現不俗。但在開始說明細節之前,先來簡單談談 ES6 的特性。

es6-hiway-sign

圖片出處:https://carlosazaustre.es/blog/ecmascript-6-el-nuevo-estandar-de-javascript/

 

ECMAScript 內含哪些東西?

JavaScript 程式語言,即由 ECMA (類似 W3C 的標準制定機構) 以「ECMAScript」為名完成標準化。而 ECMAScript 另外還定義了:

而 ECMAScript 的定義則完全未涉及 HTML 或 CSS 或 Web API,即如 DOM (Document Object Model)。上述這些都具備其各自的定義。ECMAScript 不僅另涵蓋了 JS 在瀏覽器中的概念,也包含如 node.js 的非瀏覽器環境。

新標準

不過幾天前,Ecma General Assembly 收到了 ECMAScript 語言規格第六版最後草稿進行審核,這代表什麼意義呢?

這代表今年夏天,就有核心 JavaScript 程式語言的新標準誕生了。

對於並非每天產生新的 JS 語言標準來說,這當然是大新聞了。而上一版的 ES5 更能回溯到 2009 年時,且 ES 標準委員會從那時開始就著手建構 ES6 直到現在。

ES6 將是 JS 語言的重要升級。ES6 即針對現有程式碼的最高相容性所設計,因此目前的 JS 程式碼當然可持續運作。其實多款瀏覽器都已經支援不同的 ES6 功能,且相關建構活動均正在進行。這代表你所有的 JS 程式碼,都在已內建某些 ES6 功能的瀏覽器中執行了!如果你現在都沒遇到相容性的問題,將來也不太可能發生。

慢慢數到 6

ECMAScript 標準之前的版號分別是 1、2、3、5。

第四版發生什麼事了?本來規劃過 ECMAScript Edition 4 而且也已經完成了大部分的東西。但由於整個規模過於龐大,最後還是胎死腹中;例如其複雜的 opt-in 靜態型別系統,內含泛型 (Generics) 與型別推斷 (Type inference)。

ES4 也頗有爭議。所以在標準委員會最後停止開發之時,委員同意將發佈相對較中庸的 ES5,並繼續著手更多新功能。此溝通過的新協議即稱為「Harmony」,也因此 ES5 規格述說了以下兩句:

ECMAScript is a vibrant language and the evolution of the language is not complete. Significant technical enhancement will continue with future editions of this specification.

ECMAScript 程式語言充滿活力,且其進化尚未完全。此規格的未來版本將繼續引領大幅進步。

此一聲明亦可視為某種承諾。

兌現承諾

2009 年的 ES5 導入了 Object.create()Object.defineProperty()getters settersstrict mode JSON 物件。我用過上述所有功能,也因此愛用 ES5。但如果要說這些功能大幅影響了我的 JS 程式碼撰寫方式,卻又有點太過。對我來說,最重要的創新之處大概就是新 Array 函式:.map().filter() 等等。

耗時多年開發的 ES6 很不一樣,且集結了新的語言與函式庫特色,可說是 JS 目前為止最重要的升級。新功能涵蓋大家都愛的便利性,如箭頭函式與簡易的字串插值 (String Interpolation),以及新納入的「proxies」與「generators」概念。

ES6 將改變你 JS 程式碼的撰寫方式。

本系列文章將解釋 ES6 為 JavaScript 工程師所帶來的新功能,說明之所以改變撰寫方式的理由。

我將先透過 JavaScript 近六年來的變化,從「大家朝思暮想的功能」開始聊聊。請和我們一起看看 ES6 的「Iterator」與 for-of 迴圈。

 

 

原文連結:ES6 In Depth: An Introduction

 

 

您可能也會喜歡

目前找不到相關文章

共 1 則讀者回應

  1. 參照: 深入 ES6 系列:迭代器與 for-of 迴圈 (上) | 部落格 | Mozilla Taiwan

對此文章發表回應

你的電子郵件位址並不會被公開。 必要欄位標記為 *