Babel在面试过程中的考点

Babel在面试过程中的考点

Babel功能:解析JS新语法,转化成低版本语法供浏览器使用。

一、环境搭建 & 基本配置

yarn init -y
yarn add @babel/cli @babel/core @babel/preset-env @babel/plugin-transform-runtime -D
yarn add @babel/polyfill @babel/runtime

babel配置文件.babelrc

{
   
  "presets": [
    [
      "@babel/preset-env"
    ]
  ],
  "plugins": [
    
  ]
}

基本使用:

src/index.js

const sum = (a, b) => a + b

执行命令:

yarn babel src/index.js

命令行输出结果:

"use strict";

var sum = function sum(a, b) {
   
  return a + b;
};

babel本身是一个空壳,它只是一个流程工具,它之所以可以将ES6转换成ES5语法,是每个plugin起的作用,而所需要的plugin太多的话,难以记住,所以采取preset预设方案,preset就是把许多plugin重新打一个包取一个名字,比如preset-env,preset-flow,preset-react,preset-typescript, preset-env就包含了很多转换ES6语法的plugin,如果不够用的话还可以配置单独的plugin


二、babel-polyfill

babel-polyfill就是core-jsregenerator的集合

1. Polyfill是一种JS的语法补丁方案。

比如说有些低版本的IE浏览器不支持Array.indexOf,那么就可以在网上找一个Array.indexOfPolyfill放到项目中,处理浏览器兼容性问题

if (!Array.prototype.indexOf) {
   
  Array.prototype.indexOf = function(searchElement, fromIndex) {
   
    // ......
  }
}

2. core-js是官方提供的ES6ES7等新语法的Polyfill集合

3. regeneratorgenerator语法的Polyfill

Babel 7.4 之后弃用babel-polyfill,推荐直接使用core-jsregenerator

babelpreset-env可能无法转换新的API,因为他们的语法已经符合ES5的语法规范,例如:

const sum = (a, b
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值