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 的一部分。