ES6簡介

jopen 9年前發布 | 36K 次閱讀 ES6 JavaScript開發
 

ES6作為新一代JavaScript標準,即將與廣大前端開發者見面。為了讓大家對ES6的諸多新特性有更深入的了解,Mozilla Web開發者博客推出了《 ES6 In Depth 》系列文章。CSDN已獲授權,將持續對該系列進行翻譯,供大家學習借鑒。本文為該系列的第一篇。

歡迎來到深入ES6系列!在該系列中,我們將深入探索即將到來的新一代JavaScript標準——ECMAScript 6。ES6包含了許多新的語言特性,這會讓JS變的更加強大且富有表現力。我們將會在接下來的幾周內逐步介紹這些新特性。但在此之前,我們有必要花點時間來介紹一下ES6到底是什么以及有哪些令人期待的地方。

ECMAScript包含了哪些內容?

JavaScript是對由ECMA(European Computer Manufacturer’s Association,歐洲計算機制造商聯合會,一個跟W3C類似的標準化組織)定義的ECMAScript標準的實現。ECMAScript主要定義了以下內容:

而與HTML和CSS,以及 Web APIs 相關的內容,比如DOM(文檔對象模型),是在別的標準中定義的,與ECMAScript無關。ECMAScript所定義的內容不僅可以在瀏覽器環境中使用,也可以在非瀏覽器環境中使用,比如 Node.js

新的標準

上周,ECMAScript語言標準的最終稿即ES6,已經提交給Ecma大會進行審查。這意味著什么呢?

這意味著在這個夏天,我們將擁有JavaScript這門核心編程語言的最新標準。

這是一個大新聞。一個新的JS語言標準一般會使用很長一段時間。上一個版本ES5,是在2009年推出的。自此以后ES標準委員會一直在致力于ES6的研究。

ES6是一次重大更新。當然,你之前的JS代碼仍然可以繼續在新標準下運行。ES6的設計對當前代碼做到了最大兼容。實際上,許多瀏覽器早已支持了許多ES6的新特性,并且一直在努力完善。這也就是說,你的JS代碼其實早就已經在能夠支持部分ES6特性的瀏覽器上運行了!如果到目前為止你還沒有遇到相關兼容性問題,那么你可能永遠也不會遇到了。

從版本1到版本6

之前推出的ECMAScript標準版本號分別為有1、2、3和5。

為什么沒有4呢?ES4曾計劃推出,并且在推出前已完成了大量工作,但最終還是取消了,原因就是ES4的野心實在太大了,內容太超前(舉個例子,ES4包含一個極其復雜的支持泛型和類型推斷的內建靜態類型系統)。

ES4引起了許多爭議。最終標準委員會停止了對ES4的工作,委員會成員們同意推出一個相對溫和的版本——ES5,然后繼續為 ECMAScript添加一些更實質性的特性。這個更具實質性,更加明確,并且最終協商一致的版本叫做“Harmony”,這也是為什么ES5規范中會有下面一段話:

ECMAScript是一門充滿活力的語言,對該語言的革新還在繼續。未來版本中將持續進行重要技術改進。

這段聲明也可以看作是對ES6的一種承諾。

承諾的兌現

2009年所推出的ES5,引進了Obejct.create(),Object.defineProperty(), getterssetters嚴格模式 ,還有JSON對象。所有這些特性我都使用過,并且喜歡ES5所帶來的一切。但這些新特性卻對我編寫JS代碼的方式產生了巨大影響。對我來說最大的革新,或許就是新的Array方法:.map(),.filter()等。

然而,ES6卻不同。這是經過多年設計和協調的產物。它包含了許多新的語言特性和庫,是JS最實質性的一次升級。這些新特性有為了提供便利而設計的功能,如arrow functions(箭頭函數)和string interpolation(字符串插值)。也有完全嶄新的概念,比如proxies(代理)和generators(生成器)。

ES6將會改變你編寫JS的方式。

本系列的目的是將ES6所帶來的新特性展示給JavaScript程序員。

我們將會從經典的“缺失的特性”開始講起,描述我近10年來一直想要看到的JavaScript精華部分。下篇,我們將會介紹ES6的iterators(迭代器)和新的循環語句for-of。(譯者:李全鋒  責編:陳秋歌)

原文鏈接:ES6 In Depth: An Introduction

本譯文遵循Creative Commons Attribution Share-Alike License v3.0 

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!