为什么使用分号?

除了主观视觉和在同一行上有多个语句的情况之外,是否有任何理由在JavaScript语句的末尾使用分号?

看起来有很多证据表明分号的使用是非常可选的,并且只在less数特定情况下才需要。

因为JavaScript在猜测把分号放在哪里时会对你造成不好的影响。 最好是明确的让翻译人员确切地知道你的意思,而不是让白痴盒子代表你猜。

参考文献:

…和数千人的阵容。

看起来有很less的原因,或者实际上,边界情况下,当想要使用分号。

http://aresemicolonsnecessaryinjavascript.com/ < – 这是现在下来,使用

https://github.com/aresemicolonsnecessaryinjavascript/aresemicolonsnecessaryinjavascript.github.com

因为

  • debugging时发生的微妙的错误是浪费时间,你可能会花一些很酷的事情
  • 这会让有人维护代码后面的内容变得更加清晰
  • 并不是所有的代码维护者都理解自动插入的规则,足以保持代码不被忽略
  • 离开他们依靠所有的工具来处理你的工具链中的JavaScript代码,使得规则完全正确(例如,一些缩小器/包装器/压缩器不包括Crockford的jsmin ,这将破坏在某些地方依赖于ASI的代码)

如果你问,因为你来自Python的背景:不同的是:

  • 在Python中,你不应该用任何东西来终止行,但是如果你必须的话, 可以使用分号

  • 在JavaScript中,您应该用分号终止这些行,但是允许(PDF,第26页,第7.9点)忽略它,如果它是明确的

正如道格拉斯·克罗克福德所说 –

放一个; (分号)在每个简单的语句结束。 请注意,分配函数字面量或对象字面量的赋值语句仍然是赋值语句,并且必须以分号结尾。