ECMAScript 6.0(如下簡稱ES6)是JavaScript語言的下一代標準,已經在2015年6月正式發佈了。它的目標,是使得JavaScript語言能夠用來編寫複雜的大型應用程序,成爲企業級開發語言。node
1996年11月,JavaScript的創造者Netscape公司,決定將JavaScript提交給國際標準化組織ECMA,但願這種語言可以成爲國際標準。次年,ECMA發佈262號標準文件(ECMA-262)的初版,規定了瀏覽器腳本語言的標準,並將這種語言稱爲ECMAScript,這個版本就是1.0版。git
該標準從一開始就是針對JavaScript語言制定的,可是之因此不叫JavaScript,有兩個緣由。一是商標,Java是Sun公司的商標,根據受權協議,只有Netscape公司能夠合法地使用JavaScript這個名字,且JavaScript自己也已經被Netscape公司註冊爲商標。二是想體現這門語言的制定者是ECMA,不是Netscape,這樣有利於保證這門語言的開放性和中立性。github
所以,ECMAScript和JavaScript的關係是,前者是後者的模塊化,後者是前者的一種實現(另外的ECMAScript方言還有Jscript和ActionScript)。平常場合,這兩個詞是能夠互換的。npm
Node 是 JavaScript 的服務器運行環境(runtime)。它對 ES6 的支持度更高。除了那些默認打開的功能,還有一些語法功能已經實現了,可是默認沒有打開。使用下面的命令,能夠查看 Node 已經實現的 ES6 特性。瀏覽器
window:服務器
在終端(控制端):babel
$node --v8-options | findstr harmony
阮一峯寫了一個ES-Checker模塊,用來檢查各類運行環境對ES6的支持狀況。訪問ruanyf.github.io/es-checker,能夠看到您的瀏覽器支持ES6的程度。運行下面的命令,能夠查看你正在使用的Node環境對ES6的支持程度。
模塊化
$npm install -g es-checker函數
$es-checkercode
Babel 是一個普遍使用的 ES6 轉碼器,能夠將 ES6 代碼轉爲 ES5 代碼,從而在現有環境執行。這意味着,你能夠用 ES6 的方式編寫程序,又不用擔憂現有環境是否支持。下面是一個例子。
轉碼前: 轉碼後:
上面的原始代碼用了箭頭函數,Babel 將其轉爲普通函數,就能在不支持箭頭函數的 JavaScript 環境執行了
下面的命令在項目目錄中,安裝 Babel。