ES6標準簡介之Babel轉碼器解說

  ES6是ECMAScript 6的簡稱,是JavaScript語言的下一代標準,如今基於jquery庫的前端開發js所使用的標準是ES5(ECMAScript 5)。ES6已於2015年6月正式發佈。它的目標是使JavaScript語言能夠用於編寫複雜的大型應用程序。ES6是一個泛指,含義是5.1版本之後的JavaScript的下一代標準,涵蓋了ES201五、ES201六、ES2017等。前端

  因爲如今各大瀏覽對ES6的支持程度不一,因此在開發過程當中須要使用ES6的轉碼器 —— Babel,它能夠將ES6代碼轉化爲ES5代碼,方便在瀏覽器環境中執行,你們能夠參閱http://kangax.github.io/compat-table/es6/瞭解各大瀏覽器對ES6的支持狀況。就如今目前三大新的JS框架中都是使用es6語法,這三大框架集成前端自動化打包工具 —— webpack和ES6轉ES5的轉化器 —— Babel,在新的框架下面就不用操心怎麼轉換了。jquery

  學習過ES6的同窗都應該知道箭頭函數,那箭頭函數和ES5中的function函數有什麼區別呢,下面咱們先來看一段代碼再跟你們說明一下最主要的區別webpack

  

1 //ES6
2 input.map(item => item + 1);
3 
4 //ES5
5 
6 inout.map(function (item) {
7     return item + 1;
8 });
箭頭函數和function函數對比

  不知道你們有沒有看出什麼細微的差異,可是很明顯的一點就是ES6標準下的箭頭函數簡單了不少,方便咱們書寫代碼,開發項目和維護。這二者之間最主要的區別在於this指向,箭頭函數的this指向不會改變,但function函數的this指向會改變(這也是當時本身第一次找工做面試官問個人最簡單的一道面試題,當時沒有回答上來,所如今對ES6的箭頭函數和ES5的function函數的區別記得特別牢靠)。上面這段代碼ES6的箭頭函數通過Babe轉碼器轉碼以後就造成ES5的function函數。在新的js框架中集成Babel轉碼,因此每一個項目都會有一個.babelrc的配置文件,不少時候這個文件不須要改動 本文件的基本格式以下:git

  

1 {
2     「presets」: [],
3     "plugins": []  
4 }
.babelrc配置文件基本格式

  固然若是你只是爲了熟悉使用babel,你徹底能夠使用命令行轉碼 —— babel-cli,安裝命令以下:es6

  npm install -global babel-cligithub

  基本用法以下:web

  babel example.js面試

  Babel 只轉換新的JavaScript句法,而不轉換新的API,如Iterator、Generator、Set、Maps、Proxy、Reflect、Symbol、Promise等全局對象,以及這些定義在前句對象上的方法都不會轉碼,要想對這麼對象進行轉碼,就得使用babel-polyfill爲當前環境提供一個墊片,安裝命令以下:npm

  npm install --save babel-polyfill瀏覽器

  而後在腳本頭部加入以下代碼:

  import 'babel-polyfill'便可

  此博客是我的在學習ES6入門標準時一個理解和記錄,若有錯誤,還望你們評論區指正,謝謝。

相關文章
相關標籤/搜索