AssignmentExpression: 赋值表达式,如x = 5或x += 1。
AssignmentPattern: 赋值模式,用于解构赋值,如{a, b} = obj或[x, y] = arr。
ArrayExpression: 数组表达式,如[1, 2, 3]。
ArrayPattern: 数组模式,用于解构赋值中的数组,如[a, b, c] = arr。
ArrowFunctionExpression: 箭头函数表达式,如() => {}或(x) => x + 1。
AwaitExpression: await表达式,用于异步函数内部,如await someAsyncFunction()。
BlockStatement: 块语句,由一对花括号包围的语句列表,如{ let x = 1; console.log(x); }。
BinaryExpression: 二元表达式,由两个操作数和一个操作符组成的表达式,如x + y或a * b。
BreakStatement: break语句,用于中断循环或switch语句。
CallExpression: 调用表达式,表示函数调用,如func()或obj.method()。
CatchClause: catch子句,用于捕获try语句块中抛出的异常。
ClassBody: 类体,包含类的方法和属性定义。
ClassDeclaration: 类声明,如class MyClass {}。
ClassExpression: 类表达式,可以赋值给变量或作为其他表达式的值,如const MyClass = class {}。
ConditionalExpression: 条件表达式,如x ? 'yes' : 'no'。
ContinueStatement: continue语句,用于跳过循环的当前迭代并继续下一次迭代。
DoWhileStatement: do...while语句,一种后测试循环语句。
DebuggerStatement: debugger语句,用于在代码执行时触发调试器的断点。
EmptyStatement: 空语句,仅由一个分号组成,如;,通常用作占位符或满足语法要求。
ExportAllDeclaration: export *声明,用于导出模块中的所有导出项。
ExportDefaultDeclaration: 默认导出声明,如export default function() {}或export default class {}。
ExportNamedDeclaration: 命名导出声明,用于导出模块中的特定项,如export { myVar, myFunc }。
ExportSpecifier: 导出说明符,用于指定要导出的项的名称,通常与ExportNamedDeclaration一起使用。
ExpressionStatement: 表达式语句,由一个表达式组成,并以分号结尾,如x + 1;。
ForStatement: for语句,一种常见的循环语句,包含初始化、条件测试和更新表达式。
ForOfStatement: for...of语句,用于遍历可迭代对象的值。
ForInStatement: for...in语句,用于遍历对象的可枚举属性。
FunctionDeclaration: 函数声明,如function myFunc() {}。
FunctionExpression: 函数表达式,可以赋值给变量或作为其他表达式的值,如const myFunc = function() {}。
Identifier: 标识符,用于变量名、函数名、属性名等,如x、myFunction。
IfStatement: if语句,用于条件分支,如if (condition) { ... }。
ImportDeclaration: 导入声明,用于从其他模块导入绑定,如import { something } from 'module'。
ImportDefaultSpecifier: 默认导入说明符,用于导入模块的默认导出,如import something from 'module'中的something。
ImportNamespaceSpecifier: 命名空间导入说明符,用于将整个模块作为一个对象导入,如import * as ns from 'module'中的ns。
ImportSpecifier: 命名导入说明符,用于导入模块的特定导出项,如import { specific } from 'module'中的specific。
Literal: 字面量,表示源代码中直接出现的值,如数字123、字符串"hello"、布尔值true等。
LabeledStatement: 带标签的语句,允许在代码的其他部分通过标签名引用该语句,如label: statement。
LogicalExpression: 逻辑表达式,使用逻辑操作符(&&、||)组合表达式,如a && b。
MemberExpression: 成员表达式,访问对象属性或数组元素,如obj.prop、arr。
MetaProperty: 元属性,访问与当前执行环境相关的信息,如new.target。
MethodDefinition: 方法定义,在类或对象字面量中定义的方法,如class MyClass { myMethod() {} }。
NewExpression: new表达式,用于创建对象实例,如new MyClass()。
ObjectExpression: 对象表达式,使用花括号定义对象字面量,如{ key: value }。
ObjectPattern: 对象模式,用于解构赋值中的对象,如{ a, b } = obj。
Program: 程序,AST的根节点,表示整个代码块或模块。
Property: 属性,对象字面量或类中的属性定义,如{ key: value }中的key: value。
RestElement: 剩余元素,用于收集函数参数或解构赋值中的剩余项,如function(...args)或[a, ...rest] = arr。
ReturnStatement: return语句,用于从函数返回值,如return value;。
SequenceExpression: 序列表达式,使用逗号操作符组合多个表达式,如a, b。
SpreadElement: 展开元素,用于将数组或对象展开为多个元素或属性,如[...arr]或{ ...obj }。
Super: super关键字,用于访问父类的构造函数、方法或属性。
SwitchCase: switch语句中的case子句,如switch (x) { case 1: ...; }。
SwitchStatement: switch语句,用于基于不同条件执行不同的代码块。
TaggedTemplateExpression: 标记模板表达式,使用函数调用语法处理模板字面量,如func\template``。
TemplateElement: 模板元素,模板字面量中的字符串片段,可以包含插值表达式。
TemplateLiteral: 模板字面量,使用反引号定义的字符串,可以包含插值表达式和转义字符。
ThisExpression: this表达式,用于访问当前执行上下文的对象。
ThrowStatement: throw语句,用于抛出异常,如throw error;。
TryStatement: try语句,用于捕获和处理异常,通常与catch和finally子句一起使用。
UnaryExpression: 一元表达式,只有一个操作数的表达式,如!x、++x。
UpdateExpression: 更新表达式,用于自增、自减等操作,如x++、--y。
VariableDeclaration: 变量声明,使用var、let或const声明变量,如let x = 1;。
VariableDeclarator: 变量声明符,表示变量声明中的单个变量及其初始化值。
WhileStatement: while语句,一种前测试循环语句,如while (condition) { ... }。
WithStatement: with语句,用于扩展对象的作用域链,通常不推荐使用。
YieldExpression: yield表达式,用于生成器函数中产生值或暂停执行。