Babel ,又名 Babel.js。 是一個(gè)用于 web 開發(fā),且自由開源的 JavaScript 編譯器、轉(zhuǎn)譯器。
Babel 使軟件開發(fā)者能夠以偏好的編程語言或風(fēng)格來寫作源代碼,并將其利用 Babel 翻譯成 JavaScript(現(xiàn)今在瀏覽器最常用的編程語言)。
Babel 是一個(gè)常用來使用最新的 JavaScript 語言特性的工具。身為一個(gè)轉(zhuǎn)譯器、或編譯器,開發(fā)者可以使用 ECMAScript 6 以上的功能,并將其轉(zhuǎn)換成舊版本等效的 JavaScript 讓瀏覽器能夠去解讀。
Babel 的核心版本目前每個(gè)月有超過 500 萬次下載。
Babel plugin 是用來在 web 開發(fā)上提供特定的轉(zhuǎn)換機(jī)制。舉例來說,使用 React.js 的開發(fā)者,可以使用 Babel 來轉(zhuǎn)換 JSX 語法成 JavaScript,使用 Babel preset react。
Babel信息
原作者:Babel team
開發(fā)者:contributors
版本:穩(wěn)定版本 6.26.3(2018年4月27日,21個(gè)月前)
為什么選擇BabelJS?
JavaScript是瀏覽器理解的語言.我們使用不同的瀏覽器運(yùn)行我們的應(yīng)用程序 : Chrome,F(xiàn)irefox,Internet Explorer,Microsoft Edge,Opera,UC瀏覽器等.ECMA Script是JavaScript語言規(guī)范; ECMA Script 2015 ES5是穩(wěn)定版本,適用于所有新舊瀏覽器.
在ES5之后,我們有ES6,ES7和ES8. ES6發(fā)布了許多新功能,并非所有瀏覽器都完全支持.這同樣適用于ES7,ES8和ESNext(下一版ECMA腳本).目前尚不確定所有瀏覽器何時(shí)可以與所有發(fā)布的ES版本兼容.
我們計(jì)劃使用ES6或ES7或ES8功能來編寫代碼由于缺乏對(duì)新變化的支持,在一些舊瀏覽器中往往會(huì)中斷.因此,如果我們想在代碼中使用ECMA Script的新功能并希望在所有可用的瀏覽器上運(yùn)行它,我們需要一個(gè)能夠在ES5中編譯最終代碼的工具.
Babel 做同樣的事情,它被稱為轉(zhuǎn)換器,它轉(zhuǎn)換了我們想要的ECMA Script版本中的代碼.它具有預(yù)設(shè)和插件等功能,可配置我們需要轉(zhuǎn)換代碼的ECMA版本.使用Babel,開發(fā)人員可以使用JavaScript中的新功能編寫代碼.用戶可以使用Babel獲取代碼;以后可以在任何瀏覽器中使用這些代碼而不會(huì)出現(xiàn)任何問題.
下表列出了ES6,ES7和ES8中可用的功能 :
Features | ECMA Script version |
---|---|
Let + Const | ES6 |
Arrow Functions | ES6 |
Classes | ES6 |
Promises | ES6 |
Generators | ES6 |
Iterators | ES6 |
Modules | ES6 |
Destructuring | ES6 |
Template Literals | ES6 |
Enhanced Object | ES6 |
Default, Rest & Spread Properties | ES6 |
Async - Await | ES7 |
Exponentiation Operator | ES7 |
Array.prototype.includes() | ES7 |
String Padding | ES8 |