四个按钮都是纯浏览器本地执行,代码不会离开你的机器。
| 按钮 | 结果 |
|---|---|
| 排版只调缩进换行,注释与内容一律不动 | // 示例:数组去重
function uniq(a) {
var s = {};
return a.filter(function(x) {
return s[x] ? 0 : (s[x] = 1);
});
} /* end */ |
去除注释删掉 // 与 /* */,格式基本保持原样 |
function uniq(a){var s={};return a.filter(function(x){return s[x]?0:(s[x]=1);});} |
| 普通压缩去注释 + 去多余空白换行 | function uniq(a){var s={};return a.filter(function(x){return s[x]?0:(s[x]=1);});} |
| 解包还原先识别打包/混淆格式,再排版;输入是一段 p,a,c,k,e,r 打包代码 | var a = 7;
console.log('hi' + a); |
本页样例输入是:// 示例:数组去重
function uniq(a){var s={};return a.filter(function(x){return s[x]?0:(s[x]=1);});} /* end */
「解包还原」那一行的输入是标准 Dean Edwards 打包串(eval(function(p,a,c,k,e,d){…}('0 1=2;3.4(\'5\'+1);',6,6,'var|a|7|console|log|hi'.split('|'),0,{}))),还原后再排版就是上表结果。
识别范围:p,a,c,k,e,r 打包、URL 编码混淆( %20%75 那种)、以及 MyObfuscate 三种,能反复套壳逐层剥开;普通代码点「解包还原」等于只排版。「排版」不解包,所以把打包串丢给排版只会得到同样一坨 eval(...)。
「压缩」不是 minify 引擎,只去注释与空白:变量名不会缩短,也不会做语法等价改写。要真正减小体积请用构建工具(terser/esbuild)并配合 gzip/brotli。