跳到主内容
UniKit

JS 格式化

JavaScript 代码美化压缩格式化:自研词法扫描(模板字符串 ${} 嵌套、正则字面量、// 与 /* */ 注释、?. ?? => ++ 等符号),按语句块缩进并规范化运算符空格,压缩时保留可能影响 ASI 的换行。

浏览器本地运行所有计算都在你的浏览器里完成,数据不会离开本机。

格式化结果

在上方输入代码,结果会实时显示在这里。

这个工具能做什么

  • 把压缩成一行或从日志里复制出来的 JS / TS 重新排版,先看清楚控制流再动手改。
  • 交接前统一风格:语句块缩进、运算符两侧留空格、逗号后留空格,不用装 Prettier 也能得到一致的排版。
  • 发布前把内联脚本压掉注释与缩进,减小 HTML 里 `<script>` 的体积。
  • 检查代码里的语法问题:未闭合的字符串 / 模板 / 注释 / 正则和括号不配对都会直接报错。

示例

输入

function add(a,b){return a+b}

输出

function add(a, b) {
  return a + b
}

只重排空白与缩进,不增删任何 token:字符串、模板 `` ` ``、正则与注释的内容保持原样。

常见问题

格式化会改变代码的行为吗?

不会。格式化只调整空白、缩进与换行,不增删 token、不重排语句、不补分号。模板字符串、正则字面量与注释都是整块保留的,内部一个字符都不会动。

为什么对象字面量没有被拆成多行?

对象字面量、数组、import / export 的名单以及 TS 的 interface 体都保持在一行,避免把 `import { a, b } from "x"` 拆散;只有语句块(函数体、if、for、class 体等)会缩进展开。

压缩模式会删掉换行吗?会不会影响分号自动插入(ASI)?

会删掉缩进和无意义的换行,但保留所有可能影响语义的换行:`return` / `throw` / `break` / `continue` / `yield` 之后的换行、以及行首是 `(` `[` `+` `-` `/` 的续行,都会按原样留下,所以不会因为压缩而改变执行结果。

注释会被删掉吗?

压缩模式默认去掉注释,但 `/*! … */` 与 `//! …` 开头的版权 / 许可注释会保留;勾选「压缩时保留注释」则一条都不删。美化模式始终保留注释。

支持 TypeScript 吗?

支持。类型注解、interface、泛型、`?:`、`as`、`satisfies` 等都会被当作普通 token 处理,不需要类型检查,也不依赖任何编译器。

关键词:javascript formatterjs beautifyjs minifytypescript formatterprettifyjs 格式化js 美化js 压缩代码缩进模板字符串正则字面量ASI

同类工具