微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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,类似于上面的代码来实现的。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐