为什么我所有的 js 源文件中都省略了分号?

Why are semicolons omitted in all my source js files?

我正在 Aptana 中启动一个 Web 项目并下载了 bootstrap (v 3.3.7) 和 jQuery(压缩)。当我将文件导入我的 js 文件夹时,所有文件都带有一个警告标志,我能看到的唯一警告是到处都缺少分号。我想我已经读过分号在 js 中不是必需的(尽管使用分号是最佳做法),但我之前已经为 class 下载了这些文件,但没有收到此警告。

我是不是做错了什么?这些文件可以使用吗?

Are these files OK to work with?

是的,JavaScript 解析器可以使用称为“自动分号插入”的纠错过程*纠正大多数(但不是全部)地方缺少的分号,即 built into the language specification。因此,将它们留在 ASI 将为您修复的地方确实是允许的。但如果您这样做,了解 ASI 的规则很重要。 (在任何情况下了解 ; 的规则都很重要。)Bootstrap 团队知道规则。 (jQuery 使用明确的分号。)

听起来您只是启用了 lint 风格的警告,您之前没有启用它,即使在 ASI 将修复的地方也会标记缺少的分号。

您可以通过在选项中搜索 "lint" 或 "code style" 或 "code quality" 选项来禁用警告,找到相关选项并将其关闭,但我不会.相反,我会寻找如何使库免于 lint/code style/code 质量分析,因为您使用的每个库的源不太可能符合您的整体编码风格规则。


* According to 该语言的原创者 Brendan Eich:

ASI is (formally speaking) a syntactic error correction procedure. If you start to code as if it were a universal significant-newline rule, you will get into trouble.

(有趣的是,他还说他希望他让换行符 更重要 最初,而不是更少。但正如他所说,那艘船于 1995 年航行......)