EN
首页 分类 JavaScript 格式化

JavaScript 格式化

JS 代码在线格式化工具,代码美化与压缩,支持模板字符串、正则、注释保留与语法校验提示

常见问题

模板字符串和正则会被改坏吗?

不会。字符串、模板串、正则字面量和注释都按语法边界安全处理,里面的反引号和斜杠不会被误判成代码。

压缩会删掉注释吗?

会。压缩模式会去掉注释和多余空白,所以想保留注释就用美化模式。

语法写错了会提示吗?

会给出语法问题提示。不过美化器不是完整的语法检查器,逻辑错误仍需在 IDE 里排查。

关于这个工具

缩进 2 个空格,{ 跟在语句后面,} 单独成行,} else / } catch 这类跟在右括号后面保持同行;注释独占一行;短对象和短数组留在同一行不硬拆 —— 排版目标是可读,不是把每个字符都独立成行。

分词按语法边界走:字符串、模板串(包括 ${} 里的表达式会用括号计数跳过)、正则字面量、注释都作为整体处理,所以模板串里的反引号、正则里的斜杠不会被误判成代码。if / for / while 后的小括号前补一个空格,函数调用的括号则紧贴函数名。

语法提示用 new Function 试编译,所以它只把代码当函数体看:顶层的 import / export 会报「语法提示」(ESM 模块代码本来就不能出现在函数体里),而顶层的 return 反而不会报。看到这类提示先判断是不是模块语法,不要急着改代码。它也不是 linter,逻辑错误、未定义变量都不会报。

压缩是 token 级的:去掉注释与空白,只在两个 token 会粘连时补一个空格 —— 比如 return 后接标识符、数字后接标识符,以及 a - -b 这种符号相邻的情况(不加空格会拼成 a--b,那是自减,语义就变了)。JSX 和 TypeScript 的类型语法不在处理范围内,格式化后可能变形,这类文件请用对应工具链。