抽象语法树

经验

Posted by XX on December 3, 2021

AST概念: 抽象语法树 英文全称: Abstract Syntax Tree 每个编程语言都有自己的抽象语法树

js的抽象语法树 JavaScript是一个机器 ==>抽象语法树变为这个机器的图纸和零件 浏览器会把js源码通过解析器转为抽象语法树,再进一步转化为字节码或直接生成机器码。

什么时候会用到? 写出vue、react之类的大型框架,或类似webpack、rollup、Eslint、vue-cli前端自动化的工具,或者有批量修改源码的工程需求,那你必须懂得AST。AST的能力十分强大,且能帮你真正吃透javascript的语言精髓。

ast对象文档 https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey/Parser_API#node_objects

AST的工具:实现js的拆解和组装

recast

acorn

@babel/parser等

https://github.com/jamiebuilds/the-super-tiny-compiler