深入淺出ES6(一):ES6是什麼

編者按:ECMAScript 6離我們越來越近了,作爲它最重要的方言,Javascript也即將迎來語法上的重大變革,InfoQ特開設“深入淺出ES6”專欄,來看一下ES6將給我們帶來哪些新內容。本專欄文章來自Mozilla Web開發者博客,由作者授權翻譯併發布。

歡迎來到ES6深入淺出!JavaScript的新版本離我們越來越近,我們將通過每週一節的系列課程一起探索ECMAScript 6新世界。ES6中包含了許多新的語言特性,它們將使JS變得更加強大,更富表現力。在接下來的幾周內,我們將一一深入瞭解它們。但在我們開始詳細學習之前,我認爲十分有必要花幾分鐘講解一下ES6到底是什麼,以及你可以從中學到什麼!

ECMAScript發生了什麼變化?

編程語言JavaScript是ECMAScript的實現和擴展,由ECMA(一個類似W3C的標準組織)參與進行標準化。ECMAScript定義了:

ECMAScript標準不定義HTML或CSS的相關功能,也不定義類似DOM(文檔對象模型)的Web API,這些都在獨立的標準中進行定義。ECMAScript涵蓋了各種環境中JS的使用場景,無論是瀏覽器環境還是類似node.js的非瀏覽器環境。

新標準

上週,ECMAScript語言規範第6版最終草案提請Ecma大會審查,這意味着什麼呢?

這意味着在今年夏天,我們將迎來最新的JavaScript核心語言標準

這無疑是一則重磅新聞。早在2009年,上一版ES5剛剛發佈,自那時起,ES標準委員會一直在緊鑼密鼓地籌備新的JS語言標準——ES6。

ES6是一次重大的版本升級,與此同時,由於ES6秉承着最大化兼容已有代碼的設計理念,你過去編寫的JS代碼將繼續正常運行。事實上,許多瀏覽器已經支持部分ES6特性,並將繼續努力實現其餘特性。這意味着,在一些已經實現部分特性的瀏覽器中,你的JS代碼已經可以正常運行。如果到目前爲止你尚未遇到任何兼容性問題,那麼你很有可能將不會遇到這些問題,瀏覽器正飛速實現各種新特性。

版本號6

ECMAScript標準的歷史版本分別是1、2、3、5。

那麼爲什麼沒有第4版?其實,在過去確實曾計劃發佈提出巨量新特性的第4版,但最終卻因想法太過激進而慘遭廢除(這一版標準中曾經有一個極其複雜的支持泛型和類型推斷的內建靜態類型系統)。

ES4飽受爭議,當標準委員會最終停止開發ES4時,其成員同意發佈一個相對謙和的ES5版本,隨後繼續制定一些更具實質性的新特性。這一明確的協商協議最終命名爲“Harmony”,因此,ES5規範中包含這樣兩句話:

ECMAScript是一門充滿活力的語言,並在不斷進化中。

未來版本的規範中將持續進行重要的技術改進。

這一聲明許下了一個未來的承諾。

兌現承諾

2009年發佈的改進版本ES5,引入了Object.create()Object.defineProperty()getterssetters嚴格模式以及JSON對象。我已經使用過所有這些新特性,並且我非常喜歡ES5做出的改進。但事實上,這些改進並沒有深入影響我編寫JS代碼的方式,對我來說最大的革新大概就是新的數組方法:.map(). filter()這些。

但是,ES6並非如此!經過持續幾年的磨礪,它已成爲JS有史以來最實質的升級,新的語言和庫特性就像無主之寶,等待有識之士的發掘。新的語言特性涵蓋範圍甚廣,小到受歡迎的語法糖,例如箭頭函數(arrow functions)和簡單的字符串插值(string interpolation),大到燒腦的新概念,例如代理(proxies)和生成器(generators)。

ES6將徹底改變你編寫JS代碼的方式!

這一系列旨在向你展示如何仔細審閱ES6提供給JavaScript程序員的這些新特性。

我們將從一個經典的“遺漏特性”說起,十年來我一直期待在JavaScript中看到的它。所以從現在起就加入我們吧,一起領略一下ES6迭代器(iterators)和新的for-of循環!


感謝劉振濤對本文的策劃,徐川對本文的審校。

發佈了19 篇原創文章 · 獲贊 11 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章