瀏覽器直接支持ES6了,還需要編譯么?

最近看到chrome支持ES6 import語法了,原生的哦,詳情可見 ESModules VanillaJS ? TodoMVC

自己隨後又測試了下,測試的幾個ES6語法都可以使用了,所以在不遠的未來,通過babel轉換語法是不是多餘的呢?


為了兼容不支持 ES6 的瀏覽器,所以需要 babel 編譯。為了兼容不支持 module 的瀏覽器,所以需要 webpack 打包。那麼隨著瀏覽器的發展,是不是 babel 就不再需要了呢?

但是。。。

ES 也再發展啊。

雖然 Chrome 支持了 ES6 import 語法,但是我們寫的代碼真的是 ES6 嗎?

ES6 也稱 ES2015,顧名思義就是 2015 年發布的 ES 規範,而今年是 2017 年 Chrome 依然在持續進行 ES6 的支持和性能優化。

我們使用的 Array.prototype.includes 就是 ES7 的、而 Object.values、async/await 則是 ES8 的。還有很多沒有進入 ES 正式規範的,正在制定中的,我們都可以通過 babel 來編譯,比如 for-await-of、decorators、do expression、…… 還有備受期待的 Optional Chaining

我們再來看一個在 React 中使用最多的語法:

class LoggingButton extends React.Component {

// 事件綁定
handleClick = () =&> {
console.log("this is:", this);
}

render() {
return (
&

TAG:GoogleChrome | ECMAScript2015 | Babel |