为什么JavaScript中有这么多分号?

DA.*_*DA. 15 javascript syntax

在我的JavaScript中,我倾向于成为分号的多产用户:

var x = 1;
var y = 2;
if (x==y){do something};
Run Code Online (Sandbox Code Playgroud)

我最近注意到我在查看很多没有分号后跟if语句的JavaScript.然后我发现我甚至不知道JS中分号的首选语法,并且在一些谷歌搜索后(相当令人惊讶地)除了分裂一行语句之外根本不需要分号.

所以,问题是......人们使用分号的这种习惯来自哪里?它是JavaScript中发挥作用时使用的一些流行语言的残余吗?一般的好习惯?只有我吗?

我可能会坚持使用它,因为在编写jQuery链以轻松发现结束时,这是非常好的.

更新:

感谢所有的答案,大家!总而言之,我们在JS中看到很多分号的原因,即使不需要,也来自各种变量:

  • 如果你没有插入分号,那么较旧的JS minimalizer会产生破碎的代码
  • 许多其他语言都使用它们,所以它是一种残留的习惯
  • 有时,分号CAN可以改变逻辑
  • 有些人喜欢用它们来使代码更具人性化

tsk*_*zzy 13

许多计算机语言使用分号来表示语句的结尾.C,C++和Java就是这方面的热门例子.

至于为什么人们使用它们尽管它们是可选的,它们会提高代码的可读性.在大多数情况下,它只是习惯性地完成,但有时您的代码中需要使用分号来消除可能的歧义.它总是比抱歉更安全(和一致).

以下是一个示例:您是否建议在JavaScript中的每个语句后使用分号?

// define a function
var fn = function () {
    //...
} // semicolon missing at this line

// then execute some code inside a closure
(function () {
    //...
})();
Run Code Online (Sandbox Code Playgroud)

这将被解释为:

var fn = function () {
    //...
}(function () {
    //...
})();
Run Code Online (Sandbox Code Playgroud)

此外,分号允许Javascript正确打包/缩小.否则所有的陈述都将汇集成一个大混乱.

  • 如果您的缩小软件无法处理可选分号,则根据定义它会被破坏.有JS minifiers可以应对. (7认同)