簡介html
歡迎來到深度探索 ES6!在這個新的周系列裏,咱們將探索 ECMAScript 6。這是一種 JavaScript 語言即將到來的新版本。ES6 包含了不少新的語言功能,且這些語言功能使得 JS 更增強大更富有表現力。在接下來的幾周時間裏,咱們將會一個一個地瞭解這些新功能。可是在咱們瞭解細節的東西以前,咱們值得花一點時間來討論一下什麼是 ES6 以及你指望能獲得什麼。node
ECMAScript 的範圍是什麼? JavaScript 編程語言是由 ECMAScript 名下的 ECMA 進行標準化制定的( ECMA 是和 W3C 同樣的標準化組織 )。除此以外,ECMAScript 可以下定義:程序員
語法-解析規則,關鍵字,語句,聲明,操做等等。 類型-布爾型,數字,字符串,對象等等。 原型和繼承。 內置對象和函數的標準庫 - JSON ,數學( Math ), 數組方法( Array methods ),對象內省的方法( Object introspection methods )等等。 其沒有定義與 HTML 、CSS 或者 Web API 交互的內容,好比 DOM ( 文檔對象模型 )。那些都是在單獨的標準中定義的。 ECMAScript 不只在瀏覽器環境中的涵蓋了 JS 的全部方面,其在非瀏覽器環境中也涵蓋了 JS ,例如 node.js 。編程
新的標準 上週, ECMAScript 語言規範的最終草案,第 6 版,被提交給 ECMA 大會進行審查。這意味着什麼呢?數組
這意味着這個夏天,對於核心的 JavaScript 編程語言,咱們將有一個新的標準。瀏覽器
這是一個大新聞。新的 JS 語言不是天天均可能出現的。 上一個版本,ES5,能夠追溯到 2009 年。從那時起,ES 標準委員會就一直致力於 ES6 的制定直至今日。編程語言
ES6 是語言的一次重大的升級。同時,你的 JS 代碼也能夠繼續工做。ES6 被設計爲能夠最大程度兼容現有的代碼。事實上,不少瀏覽器已經支持豐富的 ES6 的功能,同時實現工做也正在進行中。這就意味着你全部的 JS 代碼已經能夠在那些實現一些 ES6 功能的瀏覽器裏面運行!若是你到如今尚未看到任何兼容性問題,你可能永遠也不會碰到這些問題了。函數
計數到 6 ECMAScript 標準的先前的版本分別編號爲 1,2,3 和 5。設計
第四版本發生了什麼?第 4 版的 ECMAScript 曾是在計劃之中的,而且事實上大量的工做也已經完成了。但因爲它過於的繁瑣,其最終被廢棄了。 ( 例如,它在靜態類型系統中對泛型和類型推斷有一個複雜的選擇。)代理
ES4 是有爭議的。當標準委員會最終中止繼續制定時,該委員會成員贊成出版一個相對溫和的 ES5 ,而後繼續工做以制定更多的有較大幅度改進的新功能。這個直接經過談判達成的協議被稱爲「和諧(Harmony)」,這也是爲何 ES5 規範包含這兩句話:
ECMAScript 是一個充滿活力的語言且其語言的演化還不完整。在將來的 ECMAScript 的版本中將有較大提高的技術的聲明。
這種說法也能夠被看做是委員會給出的一個承諾。
兌現承諾 ES5 在 2009 年對語言進行了更新,其介紹了 Object.create( ), Object.defineProperty( ), getter 和 setter 方法,strict 模式和 JSON 對象。我已經使用了全部的這些功能,並且我喜歡 ES5 對語言作出的貢獻。可是, 這些功能中的任何一種都沒有對我寫 JS 代碼的方式產生巨大的影響。對我來講其最重要的創新,極可能是新的數組方法:.MAP,filter 等等。
然而,ES6 是決然不一樣的。它是多年和諧工做的產物。 同時,它是新的語言和庫功能的寶庫,其是迄今爲止 JS 的最實質性的升級。 其新功能涵蓋面很廣,從那些很受歡迎的能帶來便利的功能(如箭頭的功能和簡單的字符串插值),到能帶來頭腦風暴的概念(如代理和生成器)。
ES6 將改變你寫 JS 代碼的方式。
本系列旨在向你展現 ES6 如何經過檢查其新功能來給JavaScript程序員提供新的寫代碼體驗。
咱們將以一個典型的「功能缺失」做爲開始。「功能缺失」是我在過去的十年的時間內一直渴望能從 JavaScript 那看到的。因此,讓咱們一塊兒去探索 ES6 迭代器和新的 for-of 循環。
來源:http://wiki.jikexueyuan.com/project/es-six-deeply/an-introduction.html