工具介绍
JS格式化工具能把挤成一团的 JavaScript 重新排版成层次分明的结构,也能反向操作,把代码压缩成紧凑的单行。选项分成「基础设置」和「JS 特定设置」两组:左侧粘贴代码,右侧即时给出结果,缩进大小与字符、空行保留数量、大括号样式、括号与函数名后的空格、链式调用是否折行、数组是否保留多行、逗号放在行尾还是行首、是否清除注释、是否解码字符串转义,都可以逐项调整,改完点一下按钮即可重排。
排版由自研的词法分析器驱动,普通字符串、模板字符串、正则字面量与注释都会被完整识别,因此不会把模板里的插值花括号或正则中的斜杠误当成运算符;没有写分号的代码会保留必要的换行,避免破坏自动分号插入的语义。全部解析与排版都在浏览器本地完成,代码不会离开你的设备。
功能亮点
- 一键美化:把压缩过或手写的代码重排成带缩进的清晰结构
- 一键压缩:去掉注释与多余空白,输出紧凑的单行代码
- 缩进可调:1 / 2 / 3 / 4 / 8 个空格,或改用 Tab 缩进
- 大括号样式:与控制语句同行,或另起一行
- 括号空格:可分别控制 f(a, b) 与空括号 f() 的写法
- 函数括号:匿名函数与命名函数括号前的空格可单独设置
- 链式调用:方法链保持同行、换行并缩进,或换行不缩进
- 数组保留:原稿中多行书写的数组可按同样结构逐行展开
- 逗号位置:逗号放在行尾,或前置到下一行行首
- 注释与行尾:可一键清除注释、选择 LF / CRLF / CR 行结束符,也可把 \xNN、\uNNNN 解码为字符
- 模板与正则:完整识别插值语法与正则字面量,不误伤内容
- 本地处理:解析与排版全部在浏览器完成,不上传任何代码
使用方法
- 输入代码:在左侧粘贴 JS 代码,或点击「上传」导入 .js 文件
- 选择风格:设置缩进大小、缩进字符、大括号样式等排版选项
- 执行处理:开启「实时格式化」自动更新,或点击「格式化」「压缩」
- 核对结果:右侧查看处理后的代码与字符、行数统计
- 取用代码:用「复制结果」或「下载 .js」保存到本地
适合人群
- 前端开发者:整理压缩过的第三方脚本或手写代码
- 代码审查者:把待评审的代码排版整齐再逐行阅读
- 学生与初学者:通过规范缩进理解代码结构与嵌套关系
- 测试与运维:快速压缩脚本片段,便于内联或粘贴使用
- 技术写作者:把文章里的示例代码统一成一致的排版风格
常见问题解答(FAQ)
格式化会改变代码行为吗?
不会。工具只调整缩进、空格与换行,不增删任何符号;缺少分号的代码还会保留必要换行,避免破坏自动分号插入。
支持压缩吗?
支持。点击「压缩」即可去掉注释与多余空白,输出紧凑的单行代码,同时保留语法必需的空格。
压缩后会丢失注释吗?
会去掉普通注释,但以 /*! 开头的版权注释会保留下来。
模板字符串里的内容会被处理吗?
不会。模板字符串整体作为一个词法单元,内部的插值、空格与换行都原样保留。
斜杠是正则还是除号,如何区分?
解析器会根据前一个词法单元判断,正则字面量与除法运算符都不会判错。
没有写分号的代码会被拼成一行吗?
不会。当原文换行且前一个片段已经结束表达式时,工具会保留该换行,保证语义不变。
链式方法调用一定会被折行吗?
取决于「链式调用」选项。默认保持同行;选择「换行并缩进」后,原稿中另起一行的点号会保留换行并多缩进一级。
「保留数组缩进」怎么判断?
取决于原稿写法:数组内部本来就是换行书写的,开启后按同样的多行结构展开;单行写法的数组始终保持一行。
「逗号在行首」是什么风格?
把对象与多行数组的逗号移到下一行行首,也就是 Crockford 风格;函数参数等单行列表不受影响。
解码字符串转义会破坏代码吗?
不会。只有可打印字符会被解码,控制字符、引号与反斜杠仍保持原转义,输出依旧是合法字符串。
「实时格式化」默认开启吗?
默认关闭。输入后点击「格式化」或「压缩」执行;打开右上角开关后,输入即自动重排。
能处理 JSX 或 TypeScript 吗?
可以处理其中的大部分语句,但 .jsx / .ts 的泛型与类型注解不属于标准 JS,可能无法完全还原,建议格式化后自行核对。
更新日期:2026-11-02
