跳到正文
在此运行 完全在你的浏览器里运行,不上传、不登录

JS 结构树

把 JavaScript 读成 token 流:分类计数 + 括号嵌套层级,零依赖自写分词。

token 计数

结果

这是 token 级的结构视图,不是完整 AST:没有作用域、绑定与类型分析,嵌套层级只来自括号深度。

正则字面量不会被单独识别为一类,模板字符串里的 ${} 也按普通文本处理。

怎么用

  1. 把 JavaScript 粘贴进输入框 —— 一个函数、一个模块,或从 devtools 里拷出来的片段都行。
  2. 点切分。计数面板会显示每一类各有多少个 token。
  3. 视图切到 token 列表,看带编号的平铺表格:序号、嵌套深度、类别、文本。
  4. 切到嵌套树,括号会变成容器,一个块读起来是一组,而不是一串平铺的行。
  5. 先点示例看看输出长什么样,再粘贴自己的代码。

常见用法

常见问题

问:这是 Esprima 或 Babel 那种完整 AST 吗? 答:不是。这是 token 级的结构视图:token 被分类,并按括号深度嵌套,但没有作用域、绑定与类型分析,也没有语法树节点。

问:为什么我的正则表达式被判成了运算符? 答:正则字面量不会被单独识别成一类,里面的字符会被逐个切开。这个限制在页面上写明了,没有藏着。

问:模板字符串里的 ${} 会怎么处理? 答:整个模板字符串是一个字符串 token,里面的插值按普通文本处理,不会被当作表达式解析。

你的数据留在这台设备上

JS 结构树 完全在本地运行。你粘贴或拖入的一切都由你自己的浏览器处理,不会被传走。我们的服务器不保存任何东西——关掉标签页就没了。

你输入的内容不会发往服务器、不被记录,也不用于分析统计。首次加载之后即使断网,这个页面照样能用。