🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 题目 ES6 代码转成 ES5 代码的实现思路是什么 ## 解释 Babel 是如何把 ES6 转成 ES5 呢,其大致分为三步: * 将代码字符串解析成抽象语法树,即所谓的 `AST(abstract syntax tree)`,是用来表示源代码语法的一种树形结构,树上的每个节点都代表源代码的一种结构。AST在我们日常应用中非常广泛,我们的代码高亮,代码检查等都是依靠的AST * 对 AST 进行处理,在这个阶段可以对 ES6 代码进行相应转换,即转成 ES5 代码 * 根据处理后的 AST 再生成代码字符串 基于此,其实我们自己就可以实现一个简单的“编译器”,用于把 ES6 代码转成 ES5。 比如,可以使用`@babel/parser`的`parse`方法,将代码字符串解析成 AST;使用`@babel/core`的`transformFromAstSync`方法,对 AST 进行处理,将其转成 ES5 并生成相应的代码字符串;过程中,可能还需要使用`@babel/traverse`来获取依赖文件等。对此感兴趣的可以看看[这个](https://github.com/FishPlusOrange/easy-webpack)。 ## 摘自 [ 第 66 题:ES6 代码转成 ES5 代码的实现思路是什么](https://github.com/Advanced-Frontend/Daily-Interview-Question/issues/112)