ES6做爲新一代JavaScript標準,即將與廣大前端開發者見面。爲了讓你們對ES6的諸多新特性有更深刻的瞭解,Mozilla Web開發者博客推出了《ES6 In Depth》系列文章。CSDN已獲受權,將持續對該系列進行翻譯,組織成【探祕ES6】系列專欄,供你們學習借鑑。本文爲該系列的第一篇。前端
歡迎來到深刻ES6系列!在該系列中,咱們將深刻探索即將到來的新一代JavaScript標準——ECMAScript 6。ES6包含了許多新的語言特性,這會讓JS變的更增強大且富有表現力。咱們將會在接下來的幾周內逐步介紹這些新特性。但在此以前,咱們有必要花點時間來介紹一下ES6究竟是什麼以及有哪些使人期待的地方。node
ECMAScript包含了哪些內容?程序員
JavaScript是對由ECMA(European Computer Manufacturer’s Association,歐洲計算機制造商聯合會,一個跟W3C相似的標準化組織)定義的ECMAScript標準的實現。ECMAScript主要定義瞭如下內容:es6
而與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標準版本號分別爲有一、二、3和5。
爲何沒有4呢?ES4曾計劃推出,而且在推出前已完成了大量工做,但最終仍是取消了,緣由就是ES4的野心實在太大了,內容太超前(舉個例子,ES4包含一個極其複雜的支持泛型和類型推斷的內建靜態類型系統)。
ES4引發了許多爭議。最終標準委員會中止了對ES4的工做,委員會成員們贊成推出一個相對溫和的版本——ES5,而後繼續爲ECMAScript添加一些更實質性的特性。這個更具實質性,更加明確,而且最終協商一致的版本叫作「Harmony」,這也是爲何ES5規範中會有下面一段話:
ECMAScript是一門充滿活力的語言,對該語言的革新還在繼續。將來版本中將持續進行重要技術改進。
這段聲明也能夠看做是對ES6的一種承諾。
承諾的兌現
2009年所推出的ES5,引進了Obejct.create(),Object.defineProperty(),getters和setters,嚴格模式,還有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