深入解析 ES6:簡介

發表於2015-07-24

歡迎來到深入解析 ES6 系列,本系列將探討 JavaScript 即將面世的新版本 — ECMAScript 6。ES6 包含許多新特性,這使得 JavaScript 語言更強大和更具表現力,接下來的每週我們將逐一揭開 ES6 的神祕面紗。在開始之前,我們值得花幾分鐘時間來談談什麼是 ES6 或者你期待它是什麼樣的。

什麼是 ECMAScript

JavaScript 語言的標準是由 ECMA(類似 W3C 的標準化組織)制定,並命名為 ECMAScript,除其他事項外,ECMAScript 還定義了:

ECMAScript 並沒有定義處理 HTML 和 CSS 的相關標準,也就是說並沒有定義這些 Web API,如 DOM(文件物件模型),這些都被定義在單獨的標準中。ECMAScript 規範不僅存在於瀏覽器端,還包括非瀏覽器端,如 NodeJS

新規範

就在上週,第 6 版 ECMAScript 規範的最終草案提交給了 ECMA 審查,這意味著什麼呢?

這意味著,這個新規範將在今年夏天與大家正式見面。

這將是歷史性的一刻,新的 JS 規範不是每天都會降臨,上個版本 — ES5 出現於 2009 年,從那時起,ES 標準委員會就開始著手製定 ES6 規範。

ES6 是該語言的重大升級,與此同時,你的 JS 程式碼也將繼續正常執行,ES6 將最大相容現有程式碼。事實上,許多瀏覽器已經實現了 ES6 的某些新特性,這意味著,你的 JS 程式碼已經在實現了某些 ES6 新特性的瀏覽器中執行了。如果現在你的程式碼沒有出現任何相容性問題,那麼以後也不會。

關於版本號

以前的 ECMAScript 版本號分別是 1、2、3 和 5。

那麼,第 4 版到哪裡去了呢?實際上,第 4 版也在計劃之列,並完成了大量工作,但由於想法過於大膽(比如,它制定了一個非常複雜的基於泛型和型別推斷的靜態型別系統),而最終不得不被廢棄掉。

其實 ES4 是有爭議的,當標準委員會停止制定 ES4 規範時,委員會成員同意釋出一個相對溫和的 ES5,然後繼續制定一些更實質性的新特性,這就是為什麼在 ES5 的規範中包含下面這句話:

ECMAScript 是一個充滿活力的語言,語言本身的進化並不完整,在未來的版本中將進行一些重大的技術改進。

這句話可以被視為一種承諾。

兌現承諾

在 2009 年釋出的 ES5 中,引入了Object.create()Object.defineProperty()gettersetter嚴格模式和 JSON 物件。我用過所有這些特性,我也很欣賞 ES5 為這門語言所做的改進,但這並沒有對我的編碼方式產生巨大影響。對我來說,最重要的創新莫過於那些陣列的新方法,如.map().filter()等。

然而,ES6 是不同的,這是多年“和諧”工作的結晶,也是 JS 歷史上從來沒有過的實質性的升級。這些新特性包括從簡單的箭頭函式、字串插值到複雜的代理、Generator 函式等。

ES6 改變了我們編寫 JS 程式碼的方式。

本系列將逐步展示 ES6 的這些新特性,並介紹如何使用這些新特性。

我們將從一個典型的人們期待了數十年的“缺失功能”開始,所以,下週我們一起來看看 ES6 的迭代器(Iterator)和新的 for-of 迴圈。

相關文章