含义
- 抽象语法树,是源码语法结构的抽象表示。以树状的形式表现编程语言的语法结构。
用途
- ESLint、JSLint对代码错和风格的检测
- vue模块、jsx模板、typescript转化为原生的javascript
- webpack代码打包
- babel库es6转化为es5做兼容
原理
AST过程
- 读取源码
- 词法分析,字节流转为生成Token流
例如 const 这三个字符,它只能作为一个整体,语义上不能再被分解,因此它是一个 Token。
- 语法分析parse。语法分析的任务是在词法分析的基础上将单词序列组合成语法树。类似虚拟dom的语法树结构
- 生成AST