⚡ 输入 JavaScript

正确识别正则表达式、模板字符串、科学计数法;引号内的内容原样保留。

所有处理都在你的浏览器本地完成,代码不会上传。压缩会移除注释与多余空白,但会保留必要换行,避免 return 换行这类自动分号(ASI)陷阱。

输出字符数
0字符
在左侧粘贴 JS 后点「美化」或「压缩」
输入字符 0
注释数 0
压缩率 —
处理结果将显示在这里。

📊 压缩时如何保证不改坏代码

JS 压缩最容易出错的地方是“分不清符号的身份”,下表列出本工具的处理方式。

易错点风险本工具的处理
除号 / 正则a / b 与 /\d+/g 都含 /依据前一个有效 token 判断:表达式中的是除号,return、= 之后的是正则起始
ASI 自动分号return 后换行,合并行会改变返回值压缩时保留必要换行,不把无分号的两行强行并成一行
自增自减i++ + 1 压成 i+++1 含义可能被误读相邻的 + / - 之间保留一个空格
字符串 / 模板串引号里的代码样子的文本被当成代码处理单双引号、反引号 `${}` 作为整体 token,内部符号一律不动
数字科学计数法 1e5、.86、0xFF 被切分词法层完整识别进制前缀、指数部分与 BigInt 的 n 后缀
关键字与属性名obj.return 被误加空格成员访问的点号紧贴属性名;只在真正的关键字两侧补空格

⚠️ 使用注意

它是安全的空白/注释压缩器,不是完整的构建工具。

问题说明
为什么不做变量名混淆把 userName 改成 a 需要完整理解作用域、闭包、eval、with、全局引用与外部接口,误判一个就会让线上脚本报错。为了“零 bug”,本工具只做词法上 100% 安全的空白与注释压缩,不重命名任何标识符。
不做语法校验工具只重排空白,不检查括号是否配对、变量是否声明。源码本身有语法错误时,压缩结果同样是错误代码。
美化保留原有换行为避免破坏无分号写法,美化只规范缩进与间距、不随意合并或拆分你的逻辑行;想让长行自动折行请先手动分行。
注释会被删除压缩模式移除 // 与 /* */ 注释以减小体积,请保留带注释的源文件;字符串内的“//”文本不受影响。
上线前请自测压缩后建议在页面里完整跑一遍核心流程再发布,尤其是依赖正则、模板字符串与无分号风格的脚本。

⚠️ 本工具仅在浏览器本地对 JavaScript 文本做排版与压缩,不会上传、保存你粘贴的任何代码。
它只调整空白、换行与注释,不改变量名、不删代码、不做语法转译;为安全起见保留了防止 ASI 出错的必要换行,因此压缩率会略低于 Terser、esbuild 等会分析语法树的专业工具。
压缩结果请在你的页面中自行验证功能正常后再上线。

⚡

JS 压缩 / 美化工具

开发工具 完全免费 🌙 支持黑夜模式 🔒 本地运行不上传 🛡️ 正则/ASI 安全 🗜️ 压缩省体积

从别处复制来的脚本常常挤成一行或者缩进混乱;上线前又想删掉注释与空白、把体积压小。
这个工具同时解决这两件事:
它能做什么:
① 美化排版:按 { } 层级缩进、规范运算符与关键字间距,保留你原有的换行;
② 安全压缩:删除缩进、多余空白与注释,显著减小 JS 体积;
③ 正则识别:准确区分除号与正则字面量,不会把 /\d+/g 当成除法切坏;
④ ASI 保护:保留必要换行,return 换行、无分号风格不会因压缩而改变行为;
⑤ 字面量保护:单双引号字符串、模板字符串插值、科学计数法、小数、十六进制与 BigInt 都原样保留;
⑥ 压缩率统计:实时显示输入输出字符数与体积下降百分比。
需要注意:
· 它故意不做变量名混淆——那需要语法树级别的作用域分析,词法工具做了反而容易改坏代码;
· 全部处理在浏览器本地完成,刷新页面内容即消失。

类别开发工具 / 前端优化
支持语法ES2015+、箭头函数、模板串、正则
输出美化多行 / 紧凑压缩
运行方式浏览器本地,不上传

核心特性

一键美化缩进
除号正则消歧
ASI 换行保护
字符串模板安全
科学计数法支持
压缩去除注释
压缩率统计
结果回填再处理

关于这个工具

处理流程:
① 词法切分:把 JS 扫描成换行、空白、注释、字符串、模板串(整体吞入 ${…})、正则(字符类 […] 内的斜杠不误判)、数字(含 0x/0o/0b、指数、n 后缀)、标识符与多字符运算符;
② 美化:保留源码每一处换行,按大括号深度重算缩进,规范运算符两侧、关键字之后、逗号之后的间距;
③ 压缩:删除空白与注释,标识符相邻、关键字两侧补必要空格,i++ + 1 这类相邻加减号保留空格,并在无分号语句之间保留换行防止 ASI;
④ 统计:统计注释数量、输入输出字符数并计算压缩率。
它不做:不改变量名/不混淆、不删死代码、不做 Babel/TypeScript 转译、不上传任何代码。

怎么用

  1. 第 1 步
    把 JavaScript 粘贴到左侧文本框,一个函数或整段脚本都可以。
  2. 第 2 步
    点「✨ 美化排版」得到缩进整齐、间距规范的可读版本。
  3. 第 3 步
    上线前点「🗜️ 压缩代码」,右侧统计区会显示压缩率与删除的注释数。
  4. 第 4 步
    点「📋 复制结果」复制输出;「⇅ 结果回填」可把压缩结果放回输入框再美化。
  5. 第 5 步
    第一次使用可点「📋 填入示例」查看含正则、模板字符串、小数方法链的完整示例。

更新记录

  • v1.0 2026-10-11 工具正式上线:支持 JavaScript 一键美化(按大括号缩进、规范运算符与关键字间距、保留原换行)与安全压缩(去空白去注释),词法级区分除号与正则、保护字符串/模板串插值/科学计数法/进制前缀/BigInt,保留必要换行防止 ASI 陷阱,实时统计注释数与压缩率。不做有风险的变量名混淆。纯浏览器本地运行,适配黑夜模式。

常见问题

为什么压缩后还保留了一些换行?
这是故意的安全设计。JavaScript 有自动分号插入(ASI)机制,例如 return 后换行会被自动补上分号、返回 undefined;一旦压缩时把这两行合并,函数的返回值就变了。工具只在有分号或大括号等明确分隔的地方合并,无分号的语句之间保留换行,用极小的体积代价换取语义安全。
它能把变量名缩短成 a、b、c 吗?
不能,这是刻意取舍。安全地重命名变量需要分析完整语法树、作用域链、闭包以及 eval、with、跨文件全局变量等情况;纯词法压缩无法保证不出错,而脚本压缩最不能接受的就是“压完线上报错”。需要变量混淆请使用 Terser、esbuild 等构建工具,本工具专注于零风险的空白/注释压缩。
正则表达式会被压坏吗?
不会。词法分析会根据前一个有效符号判断当前 / 是除号还是正则开头:处在 =、return、( 等位置时按正则处理,并正确跳过字符类 [/] 与转义斜杠,/https?:\/\/.+\/[a-z]/gi 这类复杂正则也能整体保留。
代码里有中文或 ES6+ 语法可以处理吗?
可以。中文字符出现在字符串、标识符或注释中都不影响词法切分;箭头函数、默认参数、扩展运算符 ...、可选链 ?.、模板字符串等 ES2015+ 语法都能识别。注意工具不做语法降级,不会把 ES6 转成 ES5。
压缩后还能还原吗?
空白可以通过「✨ 美化排版」恢复缩进,但被删除的注释无法找回。请务必保留一份带注释的源文件;也可以先用「⇅ 结果回填」把压缩结果放回输入框,再点美化成可读版本(逻辑代码不变,仅注释丢失)。

💬 留言板 0

全部留言需审核通过后展示
💬

还没有留言,来抢沙发吧!

✍️ 说点什么
0 / 500
图形验证码