Babel与Polyfilll的关系和区别

Babel:Babel 是一个广泛使用的 ES6 转码器,可以将 ES6 代码转为 ES5 代码。

注意:Babel 默认只转换新的 JavaScript 句法(syntax),而不转换新的 API。

Polyfill:Polyfill的准确意思为,用于实现浏览器并不支持的原生API的代码。

 1 //使用babel转码前的代码
 2 require('babel-polyfill');
 3 (x => x * 2)(1);
 4 var b = Array.of(1,2,4);
 5 //使用babel转码后的代码
 6 'use strict';
 7 
 8 require('babel-polyfill');
 9 (function (x) {
10   return x * 2;
11 })(1);
12 var b = Array.of(1, 2, 4);

Babel转换了ES6的箭头函数句法,但对于Array.of并没有转换,因为Array.of是ES6的API。

Array是ES5就存在的一个对象了,但是该对象没有of方法,这个方法就是一个API,但ES6有这个API了。对于不支持ES6的浏览器,我们通过引入babel-polyfill使其支持ES6的API,类似于上面的代码来实现的。

posted @ 2021-09-09 00:22  671_MrSix  阅读(274)  评论(0编辑  收藏  举报