关于此工具
JavaScript 美化器将压缩的、单行的或缩进不一致的 JavaScript 和 JSON 重新格式化为整洁易读的源代码,具有统一的缩进和间距。它便于阅读打包的库、整理复制的代码片段或检查 JSON 数据块。一切都在你的浏览器中进行——代码仅作为文本重新格式化,从不执行,因此没有 eval、没有 new Function,也不会上传任何内容。
该格式化工具是一个手写的分词器,而非正则表达式取巧:它将源代码扫描为 token,同时正确跳过字符串、模板字面量、正则表达式以及行/块注释的内部,因此其中的引号和斜杠绝不会被误认为结构。经典的向后查看启发式方法可区分除法运算符与正则表达式字面量。随后 token 流被重新输出:在 '{'、'[' 和 ';' 之后换行,在 '}' 和 ']' 之前减少缩进,对象和数组字面量内每行一项,运算符两侧及关键字之后加一个空格。
选择 2 个空格、4 个空格或 Tab 的缩进,以及一种花括号风格:collapse 将开括号保留在同一行(K&R / 1TBS),而 expand 将其移到单独一行(Allman)。由于工具逐字节保留字符串和正则的内容,重新格式化后的代码在语义上与输入完全相同。将结果直接复制到你的编辑器中。
常见问题
它会运行或执行我的代码吗?
不会。美化器只将你的源代码分词并作为文本重新输出。它从不调用 eval 或 new Function,也从不执行代码,因此粘贴不可信或专有的 JavaScript 是安全的。所有工作都留在你的浏览器中。
它也能处理 JSON 吗?
可以。JSON 是 JavaScript 语法的一个子集,因此粘贴一个压缩的 JSON 对象或数组会将其重排为缩进的、每行一个键的形式。字符串、数字和嵌套结构的格式化方式与 JavaScript 中相同。
两种花括号风格有何区别?
Collapse(K&R / 1TBS)将开括号保留在语句同一行,例如 'if (x) {'。Expand(Allman)将开括号放在语句下方的单独一行。两者都产生相同、有效的代码——只是布局不同。
它会改变我代码的功能吗?
不会。只有空白、缩进和换行发生变化。字符串、模板字面量和正则表达式的内容被完全保留,因此重新格式化后的输出在功能上与原始源代码完全相同。