美文网首页前端开发那些事儿前端100问
【前端100问】Q66:ES6 代码转成 ES5 代码的实现思路

【前端100问】Q66:ES6 代码转成 ES5 代码的实现思路

作者: alanwhy | 来源:发表于2021-01-31 20:04 被阅读0次

    写在前面

    此系列来源于开源项目:前端 100 问:能搞懂 80%的请把简历给我
    为了备战 2021 春招
    每天一题,督促自己
    从多方面多角度总结答案,丰富知识
    ES6 代码转成 ES5 代码的实现思路是什么
    简书整合地址:前端 100 问

    正文回答

    将 ES6 的代码转换为 AST 语法树,然后再将 ES6 AST 转为 ES5 AST,再将 AST 转为代码

    那么 Babel 是如何把 ES6 转成 ES5 呢,其大致分为三步:

    1. 将代码字符串解析成抽象语法树,即所谓的 AST
    2. 对 AST 进行处理,在这个阶段可以对 ES6 代码进行相应转换,即转成 ES5 代码
    3. 根据处理后的 AST 再生成代码字符串

    基于此,其实我们自己就可以实现一个简单的“编译器”,用于把 ES6 代码转成 ES5。

    比如,可以使用 @babel/parserparse 方法,将代码字符串解析成 AST;使用 @babel/coretransformFromAstSync 方法,对 AST 进行处理,将其转成 ES5 并生成相应的代码字符串;过程中,可能还需要使用 @babel/traverse 来获取依赖文件等。

    相关文章

      网友评论

        本文标题:【前端100问】Q66:ES6 代码转成 ES5 代码的实现思路

        本文链接:https://www.haomeiwen.com/subject/wxortltx.html