除了主观的视觉感知和存在多个语句在同一行的情况外,在JavaScript语句结尾处使用分号的理由是否存在其他的原因呢?
看起来有足够的证据表明使用分号是高度可选的,并且只在少数特定情况下需要使用。
除了主观的视觉感知和存在多个语句在同一行的情况外,在JavaScript语句结尾处使用分号的理由是否存在其他的原因呢?
看起来有足够的证据表明使用分号是高度可选的,并且只在少数特定情况下需要使用。
由于JavaScript会在猜测分号应该放置的位置时产生麻烦。最好明确告诉解释器你的意图,而不是让它代表你进行猜测。
参考资料:
......以及无数其他参与者的贡献。
看起来很少有理由或者说极端情况下才需要使用分号。
http://aresemicolonsnecessaryinjavascript.com/ <- 此网站已关闭,请使用
https://github.com/aresemicolonsnecessaryinjavascript/aresemicolonsnecessaryinjavascript.github.com
在Python中,你不应该使用任何东西来终止行,但是如果必要,可以使用分号;。
在JavaScript中,你应该使用分号来终止行,但是如果没有歧义,可以省略它(PDF第26页,第7.9点)。
因为:
jsmin
,这将打破依赖于某些地方的 ASI 的代码)。return
后的换行符处放置分号,无论对象文字末尾是否有分号。解决这个问题的唯一方法(假设开放括号总是有自己的行)是在与return
相同的行上打开括号并将文字放在括号内。 - General Grievancereturn
这个例子不太好,我已经删除了那个注释。这里有一个更好的例子:const fn = function() { console.log("fn") } <linebreak> (() => { console.log("inline") })()
。我最近在一个项目中遇到了这种情况,他们没有使用任何格式化保存工具。(如果使用了,我想我会注意到奇怪的重新格式化。:-)) - T.J. Crowder正如道格拉斯·克罗克福德(Douglas Crockford)所建议的-
在每个简单语句的末尾加上一个; (分号)。请注意,将函数文字或对象文字分配给变量的赋值语句仍然是赋值语句,并且必须以分号结尾。