javascript是否需要';'在一行代码的末尾?

时间:2011-08-03 22:45:39

标签: javascript

我已经看过并使用了javascript代码,它们都有,并且省略了';'从陈述结束。它们在某些情况下是否需要而在其他情况下不需要如果是这样,你能给出一些例子,如果不是通用标准,那么使用';'还是不......那个问题是什么?

3 个答案:

答案 0 :(得分:12)

JavaScript使用一种名为Semicolon Insertion的(通常不喜欢的)方法,它允许你省略分号。

您可以和不可以插入分号的规则非常广泛,并且涵盖得相当好here

一般情况下,不要依赖分号插入。这是一个经过深思熟虑的功能,在它帮助你之前会伤到你。

你不仅应该总是使用分号,而且你还应养成将{大括号放在同一行上的习惯,因为分号插入实际上可能会误解你的意思。

例如,假设我正在尝试从函数返回一个javascript对象:

function f() {
    return { "a":"b", "c":"d" }    // works fine
}

function g() {
    return                         // wrong!!!
    {
        "a":"b",
        "c":"d"
    }
}

如果我将{放在一个新行上(就像我在g中所做的那样),那么return语句实际上会在其后插入一个分号,从而破坏你所说的含义。< / p>

总的来说,分号插入是一个不好的功能,你永远不应该依赖它。

答案 1 :(得分:1)

使用; 标记语句的结尾。 Javascript遵循C系列语言中设置的语法主题,; 是语句结尾的分隔符。

你看到哪些代码省略了这个?

如果在一行之后块中没有更多代码,; 在技术上是可选的。无论如何你应该包括它。

答案 2 :(得分:1)

始终使用分号,这使代码更易于阅读。现在我不知道任何可以省略的情况。