# JavaScript 格式化工具

使用此 JavaScript 格式化工具整理杂乱或压缩过的 JavaScript。粘贴代码后，工具会将其解析为 ES 模块，再以每级两个空格缩进、每行一条语句、运算符周围空格一致且语句末尾带分号的格式重新输出，并保留注释。遇到语法错误时会报告错误，而不会猜测，从而让开发者获得可读且有效的代码，便于审查、调试和编写文档。

## 常见问题

### JavaScript 格式化工具如何工作？

它会将代码作为 ES 模块解析为语法树，再以统一的风格重新输出语法树。由于代码是经过解析而非通过文本规则修补的，因此输出结构始终与输入一致。

### 输出使用什么风格？

代码块使用两个空格缩进，每条语句单独占一行，运算符两侧加空格，语句末尾加分号。较短的对象和数组字面量保持在同一行，字符串引号和模板字面量则保持原样。

### 可以更改缩进或其他设置吗？

不可以，格式化工具没有可选设置。所有输入都会以相同风格输出，这样分享结果时更易于预期。

### 代码存在语法错误时会怎样？

工具会停止处理并显示解析器消息，例如 Unexpected: 后面跟着出错的标记。修复报告的问题后，再次运行格式化工具。

### 注释会保留吗？

可以。行注释和块注释都会保留，并与其所属语句放在一起。语句内部的注释可能会移到下一条语句的开头。

### 它支持现代 JavaScript 吗？

支持。解析器可以识别现代语法，例如 import 和 export、箭头函数、类、async 和 await、解构、展开运算符、可选链、空值合并和模板字面量。无法放在一行的较长对象字面量会拆分为每行一个属性。

### 能否格式化已精简的代码？

可以，压缩过的文件会被解析，并以易读的行和缩进展开。压缩工具选用的较短变量名会保留，因为格式化过程不会重命名任何内容。

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

不会，它只会更改空白字符、换行和语句终止符。唯一添加的内容是分号，它们与 JavaScript 读取代码的方式一致。

### 为什么结果会放在 javascript 代码围栏中？

结果会作为以 javascript 围栏开头的 Markdown 代码块返回，因此粘贴到 Markdown 时会显示语法高亮。需要纯源代码时，请复制围栏之间的内容。

### 那么 JSX、TypeScript 或 Flow 呢？

此页面用于处理纯 JavaScript。处理 React 组件请使用 JSX 格式化工具；处理带类型的代码请使用 TypeScript 或 Flow 格式化工具，因为类型注解不属于标准 JavaScript 的一部分。

在这里投放广告？

[给我们发邮件](mailto:hi@dennn.is?subject=%E5%9C%A8%20OneClick%20Pro%20%E4%B8%8A%E6%8A%95%E6%94%BE%E5%B9%BF%E5%91%8A)

[广告 适用于 WordPress 的智能体就绪型插件套件。](https://sleekwp.com/?ref=oneclickpro)
