常用的AST(抽象语法树)节点类型

100 阅读1分钟
节点类型说明
Program整个 JS 程序的根节点
ImportDeclarationimport ... from '...' 导入语句
ExportNamedDeclaration / ExportDefaultDeclaration导出语句
FunctionDeclaration声明式函数,例如 function foo() {}
FunctionExpression函数表达式,例如 const f = function() {}
ArrowFunctionExpression箭头函数,例如 const f = () => {}
VariableDeclaration变量声明,如 constletvar
VariableDeclarator变量声明器,const a = 1 中的 a = 1
CallExpression函数调用,例如 foo()
MemberExpression对象属性访问,如 obj.propobj['prop']
Identifier标识符,如变量名、函数名
Literal(或在 Babel 中叫 StringLiteral, NumericLiteral 等)字面量,例如 'a', 123
ExpressionStatement表达式语句,例如 a + b;
IfStatementif 条件语句
ForStatement / WhileStatement / DoWhileStatement循环语句
ReturnStatement返回语句
BlockStatement代码块 { ... }
ObjectExpression对象字面量 { key: value }
ArrayExpression数组字面量 [1, 2, 3]
AssignmentExpression赋值表达式,例如 a = b
BinaryExpression二元运算表达式,如 a + b, a * b
UnaryExpression一元运算,例如 !a, typeof a
LogicalExpression逻辑运算,如 a && b
ConditionalExpression三元表达式,如 a ? b : c
NewExpressionnew 操作符,例如 new Date()
ThisExpressionthis 关键字
TemplateLiteral模板字符串,如 `Hello, ${name}`
TaggedTemplateExpression标签模板,如 styled.div...``