Babel ,又名 Babel.js。 是一個用于 web 開發,且自由開源的 JavaScript 編譯器、轉譯器。
Babel 使軟件開發者能夠以偏好的編程語言或風格來寫作源代碼,并將其利用 Babel 翻譯成 JavaScript(現今在瀏覽器最常用的編程語言)。
Babel 是一個常用來使用最新的 JavaScript 語言特性的工具。身為一個轉譯器、或編譯器,開發者可以使用 ECMAScript 6 以上的功能,并將其轉換成舊版本等效的 JavaScript 讓瀏覽器能夠去解讀。
Babel 的核心版本目前每個月有超過 500 萬次下載。
Babel plugin 是用來在 web 開發上提供特定的轉換機制。舉例來說,使用 React.js 的開發者,可以使用 Babel 來轉換 JSX 語法成 JavaScript,使用 Babel preset react。
Babel信息
原作者:Babel team
開發者:contributors
版本:穩定版本 6.26.3(2018年4月27日,21個月前)
為什么選擇BabelJS?
JavaScript是瀏覽器理解的語言.我們使用不同的瀏覽器運行我們的應用程序 : Chrome,Firefox,Internet Explorer,Microsoft Edge,Opera,UC瀏覽器等.ECMA Script是JavaScript語言規范; ECMA Script 2015 ES5是穩定版本,適用于所有新舊瀏覽器.
在ES5之后,我們有ES6,ES7和ES8. ES6發布了許多新功能,并非所有瀏覽器都完全支持.這同樣適用于ES7,ES8和ESNext(下一版ECMA腳本).目前尚不確定所有瀏覽器何時可以與所有發布的ES版本兼容.
我們計劃使用ES6或ES7或ES8功能來編寫代碼由于缺乏對新變化的支持,在一些舊瀏覽器中往往會中斷.因此,如果我們想在代碼中使用ECMA Script的新功能并希望在所有可用的瀏覽器上運行它,我們需要一個能夠在ES5中編譯最終代碼的工具.
Babel 做同樣的事情,它被稱為轉換器,它轉換了我們想要的ECMA Script版本中的代碼.它具有預設和插件等功能,可配置我們需要轉換代碼的ECMA版本.使用Babel,開發人員可以使用JavaScript中的新功能編寫代碼.用戶可以使用Babel獲取代碼;以后可以在任何瀏覽器中使用這些代碼而不會出現任何問題.
下表列出了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 |