JavaScript 在线格式化、压缩与代码分析工具

JS 输入
结果
点击工具栏「分析」按钮,生成代码复杂度报告
点击工具栏「分析」按钮,获取可读性改进建议
点击「分析」后查看代码使用了哪些 ES 版本的语法特性
执行「var→let」「移除调试」或「模板字符串」操作后,这里显示改动对比

处理 JavaScript 代码,一个工具够了

不管是格式化压缩、整理 AI 生成的乱码、分析代码复杂度,还是在提交前清除调试语句,这里都能直接搞定。所有操作在浏览器本地完成,不发任何网络请求,代码安全性有保障。

代码复杂度分析

点击「分析」按钮,工具会扫描当前代码并生成一份中文报告,包含函数数量、有效代码行数、最大嵌套深度、最长函数定位、var 声明统计和异步模式判断。嵌套超过 4 层时会给出具体警告,检测到回调地狱特征时提示改用 async/await。

可读性建议

规则库会扫描单字母变量(xatmp)、缺少注释的长函数、eval 和 with 的使用、过深的三元嵌套、残留的 debugger 断点等问题,每条建议都附有行号,点击直接定位。

一键优化操作

  • var → let:批量替换所有 var 声明,对比改动一目了然
  • 移除调试代码:精确识别并删除 console.logconsole.debugdebugger,保留 console.errorconsole.warn
  • 模板字符串转换:将简单的字符串拼接 'hello ' + name 自动改写为 `hello ${name}`

ES 版本语法检测

一键检测代码里用到了哪些 ES6 至 ES2022 的新语法特性,包括箭头函数、可选链(?.)、空值合并(??)、async/await、BigInt 等,帮助判断是否需要 Babel 编译降级再交付。

混淆代码识别

如果格式化后代码里充斥大量单字母变量(abc...),分析报告会在顶部标记「此代码可能经过混淆处理」,避免你在无意义的变量名上浪费时间。格式化至少能让控制流结构清晰可见。

使用教程

下面几个常见场景,帮你快速上手各项功能。

1格式化/美化压缩或 AI 生成的代码

⬛ 压缩/混乱代码
function add(a,b){return a+b;}var result=add(1,2);console.log(result);
⚡ 格式化后
function add(a, b) {
  return a + b;
}
var result = add(1, 2);
console.log(result);

直接粘贴代码,点击「格式化」按钮即可。支持 2 或 4 空格缩进,工具栏下拉菜单切换。格式化前会自动检查语法错误并用中文提示位置。

2压缩 JS 文件,减小体积

格式化代码(含注释)
// 计算两数之和
function add(a, b) {
  return a + b;
}
⬛ 压缩结果
function add(a,b){return a+b;}

点击「压缩」,去除所有注释和多余空白,生成单行代码。压缩完成后会提示减少了多少体积百分比,适合将处理结果直接内嵌到 HTML 或上传 CDN。

3提交前移除 console.log 和 debugger

含调试语句
function loadData(id) {
  debugger;
  console.log('loading', id);
  return fetch('/api/' + id);
}
清理后
function loadData(id) {
  return fetch('/api/' + id);
}

点击「移除调试」,精确删除 console.logconsole.debug 和所有 debugger 语句。console.errorconsole.warn 会被保留。操作完成后右侧自动切到「改动对比」标签。

提示:对比视图里绿色是保留的行,红色是被删除的内容,确认无误后点「← 应用结果」把修改同步回左侧编辑器。

4分析代码复杂度,定位问题函数

粘贴代码后点击「分析」,右侧切换到「复杂度报告」标签。报告顶部是统计卡片(总行数、函数数量、最大嵌套深度等),下方按严重程度列出各项问题,点击蓝色行号链接可以直接跳转到编辑器对应位置。

嵌套深度说明:超过 4 层的大括号嵌套通常意味着代码可读性较差,可以通过「早期返回」模式或拆分子函数来改善。报告里的「最长函数」列表帮你快速找到需要重构的目标。

5检测 ES 新语法,评估兼容性风险

点击「分析」后切换到「ES版本」标签,工具会列出代码里使用的所有 ES6~ES2022 新特性,并按版本分组显示。如果你的目标环境是 IE11 或旧版 Chrome,看到 ES2020 的特性就需要配置 Babel 或 esbuild 进行编译降级。

常见问题

代码会上传到服务器吗?
不会。本工具所有处理逻辑都运行在你的浏览器里,完全没有网络请求,可以放心粘贴包含 API Key、数据库密码或用户隐私信息的代码。
格式化后代码逻辑会变吗?
不会。格式化只调整缩进、空白和换行,不改变任何运算符、括号或字符串内容。字符串和模板字面量内部的空白和换行也会原样保留。
var 转 let 安全吗?
对绝大多数代码是安全的。工具做的是保守替换,但如果原代码刻意利用了 var 的变量提升(hoisting)特性,替换后行为可能不同。替换完成后会展示改动对比,建议测试验证后再应用到生产代码。
混淆代码能恢复原始变量名吗?
不能。混淆工具在压缩时已丢弃了原始变量名,这一过程不可逆。本工具能格式化混淆代码让结构可见,并在报告顶部提示检测到混淆特征,但无法恢复语义化的变量名。
支持 TypeScript 吗?
格式化和压缩功能对大部分 TypeScript 语法(类型注解、接口等)是兼容的,但 TS 专有语法(装饰器、枚举等)可能导致语法检查报错。建议先用 tsc 编译为 JS 再处理,或忽略错误提示直接格式化。
大文件处理会卡界面吗?
几百 KB 以内的代码处理非常流畅。超大文件(几千行以上)分析时可能需要等待一两秒,但界面不会卡死,因为主要操作通过非阻塞方式执行。压缩和格式化通常在 100ms 内完成。