抽象语法树(AST)中的节点类型名称

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表达式,用于生成器函数中产生值或暂停执行。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容