目前,瀏覽器JavaScript引擎還沒有全盤支持ES6語法(Chrome情況會好些,但依舊沒有支持所有的ES6新特性),所以,我們依舊需要使用ES6轉(zhuǎn)碼器,將ES6語法轉(zhuǎn)為ES5語法,再在瀏覽器中運行。
最流行,最推薦的ES6轉(zhuǎn)碼器是Babel。
無論是React,亦或Vue,Angular2,無一例外的使用了Babel來支持ES6特性,通過webpack這個模塊化和項目構(gòu)建工具來編譯ES6。
那么,如果只是學(xué)習(xí),如何利用Babel運行ES代碼呢?
1. 單獨運行JS文件
單獨運行某個含有ES6語法的JS文件,步驟如下:
- 安裝Babel命令行工具和相關(guān)包
npm install --global babel-cli
npm install --save babel-preset-es2015 - 在當前目錄下新建配置文件.babelrc,該文件用于設(shè)置轉(zhuǎn)碼規(guī)則和插件,內(nèi)容如下:
{
"presets": ['es2015']
}
- 新建一個test.js,用
babel-node命令運行JS文件:
babel-node test.js
- 控制臺輸出運行結(jié)果。
注意:Babel默認只轉(zhuǎn)換新的JavaScript句法,而不轉(zhuǎn)換新的API,比如Iterator、Generator、Set、Maps、Proxy、Reflect、Symbol、Promise等全局對象,以及一些定義在全局對象上的方法(比如Object.assign)都不會轉(zhuǎn)碼。
2.在瀏覽器中運行JS代碼
如果需要在瀏覽器中支持ES6語法,可以引入腳本轉(zhuǎn)換器babel.min.js,以內(nèi)聯(lián)腳本或者外部文件鏈接方式運行:
<html>
...
<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
<script src="test.js"></script><!--外部文件鏈接-->
<script type="text/babel">//內(nèi)聯(lián)腳本,注意:需要定義type類型為“text/babel”
//ES6代碼
</script>
</html>
注意:從Babel 6.0開始,不再直接提供瀏覽器版本。
更多運行環(huán)境支持情況,可參看官網(wǎng)鏈接:https://babeljs.io/docs/setup/#installation。