除了主观视觉感知和在同一行上有多个语句的情况之外,还有任何理由在JavaScript语句结尾处使用分号吗?
看起来有大量证据表明使用分号是高度可选的,仅在少数特定情况下是必需的。
答案 0 :(得分:34)
因为JavaScript在猜测分号的位置时会给你带来讨厌的东西。最好是明确的,让解释者确切地知道你的意思,而不是让愚蠢的盒子代表你猜测。
参考文献:
......还有成千上万的演员。
答案 1 :(得分:17)
看起来很少有理由,或者实际上是边缘情况,当人们想要使用分号时。
http://aresemicolonsnecessaryinjavascript.com/< - 此时已关闭,请使用
https://github.com/aresemicolonsnecessaryinjavascript/aresemicolonsnecessaryinjavascript.github.com
答案 2 :(得分:13)
如果你问,因为你来自Python背景:区别在于:
在Python中,你不应终止包含任何内容的行,但are allowed使用分号,如果你必须
在JavaScript中你 应该用分号终止行,但are allowed (PDF, page 26, point 7.9)要省略它,如果它是明确的
答案 3 :(得分:11)
由于
jsmin
,会在某些地方破坏依赖ASI的代码)答案 4 :(得分:10)
作为Douglas Crockford suggests -
放一个; (分号)在每个简单陈述的末尾。请注意,分配函数文字或对象文字的赋值语句仍然是赋值语句,必须以分号结尾。