原文:http://addyosmani.com/blog/ECMAscript-6-resources-for-the-curious-javascripter/
最近我花了很多時間來了解ECMAScript 6相關的知識,我意識到,如果能把這些知識收集到一個單獨的頁面里,會給那些對下一代ECMAScript感興趣的朋友們提供很多幫助.
目前瀏覽器支持哪些ES6特性?
想要知道你的瀏覽器已經支持了哪些ECMAScript 6特性,可以看看Juriy Zaytsev統計的ES6兼容性表格: http://kangax.github.com/es5-compat-table/es6/.
注意:如果你使用的是Chrome,必須要在chrome://flags頁面中開啟"啟用實驗性JavaScript"選項.這樣才能反映出當前瀏覽器對ES6特性真正的支持情況.
Canary(譯者注:chrome最新版,相當於Firefox的Nightly)會比chrome穩定版提供更多的新特性,Peter Beverloo的博客中記錄了Chromium和WebKit每次的更新情況.
Mozilla對ES.next的支持情況可以在這個MDN頁面中查到,更多的信息還有Mozilla ES6 plans for support.
如何在當前的瀏覽器中polyfill ES6的新特性?
有許多的開發者,包括Paul Miller, Andrea Giammarchi, James Burke和我自己,都嘗試寫過能在ES5/ES3兼容的環境中實現ES6特性的Polyfill.
這些Polyfill不光能讓我們使用未來的新特性,還能讓我們比較超前的熟悉一下ES6的最新語法.
Maps, Sets, Math, WeakMap以及其他:
- Paul Miller的ES6 Shims (Maps, Sets, Math, Arrays)
- Harmony集合類型的shims (Map, WeakMap, Set)
- Quasi-shim (ES6 Unicode碼點轉義序列)
模塊 & 模塊加載器:
注意: 這里還有一些比較難實現shim的ES6特性: https://gist.github.com/1665192. 如果你在生產環境中使用了上面的這些實現,要非常小心,因為polyfill和原生的實現在效果和性能上會有很大差異.
有哪些支持ES6的Transpilers(將使用ES6語法的腳本編譯成目前支持的JavaScript)?
- Google Traceur (開發中)
- Google Caja (開發中)
- ES Transpiler (似乎已停止開發)
- Esprima也完成了一些相關工作
有沒有關於ES6的演講?
TC39成員Dave Herman和Brendan Eich都曾經有過關於ES6的演講.雖然它們講的某些東西可能會和最新的規范草案有些小區別,但下面的視頻還是值得強力推薦的.
我很懶,ES6中到底有什么新東西?我就要一個頁面.
我個人更推薦閱讀最新的ES6草案,可是對於那些時間不是很充足的人來說,Thaddee Tyl總結的這個頁面會很有用:
http://espadrine.github.com/New-In-A-Spec/es6/
哪里可以找到最新版的ES6規范?
http://wiki.ECMAscript.org/doku.php?id=harmony:specification_drafts
我可以在哪里參與ES6規范的討論?
上周,我在挪威遇到了Dave Herman (TC39, Mozilla),我們在討論的過程中提到了JSFixed.
如果你不願意直接在es-discuss郵件列表中提出意見,可以使用JSFixed,TC39的成員們會定期查看上面的內容.
