含义

  • 抽象语法树,是源码语法结构的抽象表示。以树状的形式表现编程语言的语法结构。

用途

  1. ESLint、JSLint对代码错和风格的检测
  2. vue模块、jsx模板、typescript转化为原生的javascript
  3. webpack代码打包
  4. babel库es6转化为es5做兼容

原理

AST过程

  1. 读取源码
  2. 词法分析,字节流转为生成Token流

    例如 const 这三个字符,它只能作为一个整体,语义上不能再被分解,因此它是一个 Token。

  3. 语法分析parse。语法分析的任务是在词法分析的基础上将单词序列组合成语法树。类似虚拟dom的语法树结构
  4. 生成AST

案例