JavaScript 格式化 / 压缩

把压缩或混淆过的 JavaScript 重新缩进以便阅读,或把自己的代码压缩后上线。

JavaScript 输入

缩进
变量名
script.js
粘贴或输入 JavaScript,即可格式化或压缩。

你的 JavaScript 会在浏览器本地格式化和压缩,不会上传到 BroBroGo。

常见问题

格式化和压缩有什么区别?

格式化会重新缩进、加上空白,让代码易读、便于逐行跟踪——这是看懂压缩或混淆代码最快的办法。压缩正好相反,去掉空白、注释和无用代码,让文件更小、加载更快。读代码时用格式化,上线前用压缩。

能把压缩后的代码还原成原始代码吗?

它能恢复缩进和换行,让逻辑重新变得可读,但无法找回原来的变量名和注释——压缩时这些已被永久丢弃,任何工具都无法还原。你得到的是同样的代码,只是排布清晰了。

“缩短”和“保留”变量名有什么区别?

两者都会去掉空白、注释和无用代码,也都不改变脚本的行为。“缩短”还会把局部变量名改成单个字母,得到体积最小的文件——用于上线。“保留”则不动你的变量名,文件略大,但依然可读、方便调试。

JavaScript 格式化与压缩的作用

在 JavaScript 开发中,代码的格式化(美化)与压缩(Minification)服务于两个截然不同的目的。格式化工具通过重新整理代码结构,增加缩进和空格,使原本紧凑、混乱或经过混淆的代码变得易于阅读和理解。这在调试他人代码、分析第三方脚本或排查生产环境问题时尤为重要。

相反,压缩则是为了优化网页性能。通过移除代码中所有不必要的字符,可以显著减小文件体积,从而加快脚本在浏览器中的下载和加载速度。

格式化与压缩的规则与参数设置

本工具支持对输入的 JavaScript 代码进行两种核心处理:

格式化

进行格式化时,用户可以根据团队的编码规范选择不同的缩进风格:

  • 2 个空格
  • 4 个空格
  • Tab 缩进

格式化过程会重新梳理代码的层级关系,使逻辑结构一目了然。

压缩

进行压缩时,工具会执行以下操作以最大化减小体积:

  • 移除所有无用的空白字符、换行符和注释。
  • 剔除无用代码(Dead code)。
  • 保留以 /*! … */ 开头的开源许可协议横幅,以遵守开源授权协议。

此外,针对局部变量名的处理,提供了两种控制选项:

  • 缩短:将局部变量名重命名为单个字母,以获取极限的压缩体积,适合生产环境部署。
  • 保留:保持原始局部变量名不变。虽然文件体积会略大,但保留了代码的可读性,便于后续的调试与问题定位。

界面指标与处理限制

在处理完成后,只读编辑器中会显示处理后的代码,并实时输出以下数据指标:

  • 行数:输出代码的总行数。
  • 字符:输出代码的字符总数。
  • 大小:以 UTF-8 字节为单位的输出文件大小。

限制与异常处理

为了保证浏览器的响应速度和工具的稳定运行,系统设定了以下限制与错误提示机制:

  • 输入限制:输入区域支持的最大字符数为 3,000,000 字符。若超出此限制,系统将显示错误信息:“文件太大,无法处理。请换小一点的。”
  • 超时机制:若代码处理时间超过 20 秒,系统将自动终止操作并提示:“处理时间过长,已停止——请换小一点的文件。”
  • 语法错误:如果输入的 JavaScript 代码存在语法错误导致无法解析,系统将提示:“无法处理这段 JavaScript。”
  • 无有效代码:若压缩后未剩下任何可执行代码(例如输入仅包含注释或空白),系统将提示:“压缩后没有剩下任何内容——输入里没有可执行的代码。”
  • 压缩效果反馈:压缩成功后,界面会显示:“已压缩——体积减小 {pct}%。”,直观展示体积缩减比例。

点击“清空”按钮会同时清除输入区、输出区以及本地保存的草稿,使工具恢复到“粘贴或输入 JavaScript,即可格式化或压缩。”的初始就绪状态。

浏览器本地处理与隐私说明

你的 JavaScript 会在浏览器本地格式化和压缩,不会上传到 BroBroGo。所有的解析、重构和压缩计算均利用您本地设备的浏览器资源完成。

常见问题

格式化和压缩有什么区别?

格式化会重新缩进、加上空白,让代码易读、便于逐行跟踪——这是看懂压缩或混淆代码最快的办法。压缩相反,去掉空白、注释和无用代码,让文件更小、加载更快。读代码时用格式化,上线前用压缩。

能把压缩后的代码还原成原始代码吗?

它能恢复缩进和换行,让逻辑重新变得可读,但无法找回原来的变量名和注释——压缩时这些已被永久丢弃,任何工具都无法还原。你得到的是同样的代码,只是排布清晰了。

“缩短”和“保留”变量名有什么区别?

两者都会去掉空白、注释和无用代码,也都不改变脚本的行为。“缩短”还会把局部变量名改成单个字母,得到体积最小的文件——用于上线。“保留”则不动你的变量名,文件略大,但依然可读、方便调试。