在 JavaScript 中,当必须缩小文件时省略分号是否安全?

In JavaScript, is it safe to omit semicolons when file have to be minifyed?

几周以来,我在 JavaScript 文件中省略了分号。我今天意识到如果文件被缩小可能会导致问题。

我阅读了以下资源:

有两种观点:

一般情况下最好的选择是什么?我的意思是 "general case" 源代码应该是通用的并且可以被任何缩小器缩小。

不应该导致问题,只要缩小器中没有错误。

这是因为 JavaScript 没有分号的代码完全有效,可解析 JavaScript。

而且这可以准确且可重复地缩小。

不涉及 "guesswork" - 仅涉及基于 specification.

的明确定义的确定性解析算法

先前已在与 ASI 相关的缩小器中发现错误。

因此,根据缩小器的成熟度,出现此类错误的风险可能会增加。

也就是说,以前在与 ASI 无关的缩小器中也发现了错误,因此无论您是否使用分号,您的缩小器总是有引入问题的风险。

鉴于所有这些,以及 JavaScript 压缩器的高质量和成熟度,我会遵循让您的团队最开心的编码风格。