怎么学习和运用es6?

一直觉得es6和以前的es相比差别很大,打算以后用es6开发。但是浏览器兼容问题,是不是有什么好的编译工具配合es6开发才能在当下绝大多数的浏览器上跑起来?有没有知道的?麻烦帮我解答一下,谢谢!

阅读 7.7k
5 个回答

es6编译器http://babeljs.io/
各主流浏览器对具体每个es6特性的支持情况http://kangax.github.io/compat-table/es6/
https://github.com/paulmillr/es6-shim
npm install -g babel
Babel自带一个babel-node命令,提供支持ES6的REPL环境,可以直接运行ES6代码

babeljs+webpack拯救你

看了一下各种回答,都集中在babel上,其实最关键的点在于,babel在进行转换的时候默认只转换语法而不转换新的API。

这个问题才是在浏览器上使用es6最需要考虑的,而不仅仅是一个babel通天下。

转换ES6新的API,babel自身的插件(也就是各种 babel-plugin-transform-xx)或者是babel-runtime / babel-polyfill(自身的polyfill)也不是万能的,不过babel似乎也是致力于解决这些问题,babel-preset-env 可以仔细了解下。

除了babel自身,其他的polyfill方案也可以多了解和使用,比如 es6-shim 或者是 polyfill.io 都可以。

个人认为,目前将ES6也不能一味的编译成ES5去跑,更不能只拿到一个babel就满足了,应当了解多方的情况,最好的结果无非是 既能满足使用新浏览器的用户群也能够兼容使用旧浏览器的用户群。(旧只是相对,毕竟chrome对ES6也有不支持的)

还有一点,使用ES6意味着(最好意味着)基本都是用模块化进行开发,因此合适的打包工具也是需要考虑的。

参考:

https://github.com/es-shims/e...
https://polyfill.io/v2/docs/
http://babeljs.io/docs/usage/...

不用 bable 直接,升级游览器即可开启 ECMA6 的学习之路
小技巧:&standalone=1 参数表示下载离线版,win平台可以通过下面的链接下载。
https://www.google.com/chrome/browser/de...

Chrome 开启实验属性
chrome://flags/#enable-javascript-harmony

查询游览器支持的ECMA6特性
http://kangax.github.io/compat-table/es6...

我现在在写 React Native 正好把前段时间学的 ECMAScript6 用上了。

推荐问题