Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ES6 代码转成 ES5 代码的实现思路是什么? #28

Open
chaijinsong opened this issue Aug 15, 2019 · 0 comments
Open

ES6 代码转成 ES5 代码的实现思路是什么? #28

chaijinsong opened this issue Aug 15, 2019 · 0 comments
Labels
Tips 一些小技巧,算不上文章但是有点用 前端 前端相关文章

Comments

@chaijinsong
Copy link
Owner

涉及到的主要是AST相关的内容,AST(Abstract Syntax Tree)中文叫抽象语法树,是用来表示源代码语法的一种树形结构,树上的每个节点都代表源代码的一种结构。AST在我们日常应用中非常广泛,我们的代码高亮,代码检查等都是依靠的AST。

那么ES6转ES5的思路,其实就是在处理AST的过程中进行操作。转化代码的流程一般分为三步

  1. 将代码通过解释器转化为AST,可以通过 astexplorer 来查看代码对应的AST结构
  2. 通过一定的规则,去修改AST的结构(常见的比如转jsx,ES6转ES5都是在这一步进行操作)
  3. 将修改后的AST转化为普通代码

现在一般使用的就是bable转ES6,具体的ES6转ES5在第二步中的逻辑,那就得看bable中转ES6的babel-preset-es2015 对AST进行操作的源码了

@chaijinsong chaijinsong added 前端 前端相关文章 Tips 一些小技巧,算不上文章但是有点用 labels Aug 15, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Tips 一些小技巧,算不上文章但是有点用 前端 前端相关文章
Projects
None yet
Development

No branches or pull requests

1 participant