我们最后需要分号吗?

时间:2010-10-23 02:56:50

标签: javascript

我在JavaScript中的某些地方错过了分号,但它并没有在任何浏览器中抛出错误。最终需要;吗?

6 个答案:

答案 0 :(得分:87)

该概念称为 JavaScript分号插入或“自动分号插入”。这篇博文:JavaScript Semicolon Insertion: Everything you need to know使用标题下的示例以可理解的方式概述了这个概念:

  • 允许使用分号
  • 可以省略分号
  • 规则

它甚至深入研究了official ECMAScript specification的主题。

答案 1 :(得分:23)

Javascript做了一个叫做“分号插入”的东西,这意味着你可以实际编写在某些地方省略分号的代码,并且在解析代码时基本上会为你添加它们。

这种情况发生时的规则有点复杂。为简单起见,许多开发人员只是假装不存在分号插入。

答案 2 :(得分:11)

可以编写没有分号的javascript,如果你开始使用parantesis (或括号[,你只需要插入它们。

sugarjs times()函数就是一个很好的例子:

<script>
    var somthing = 1 + 3
    ;(5).times(function(n){
        console.log(n + " line") //prints "X line" 5 times
    })
</script>

这篇文章揭穿了大多数围绕javascript和分号的神话:link

答案 3 :(得分:4)

要说用分号编写代码使其更具可读性是荒谬的。它使您的代码更加破碎。看看这个页面上没有分号的代码,告诉我它的可读性较差。它更具可读性,更简洁,更清洁,更优雅。分号是丑陋的,没有必要。请参阅此文章:http://mislav.uniqpath.com/2010/05/semicolons/

答案 4 :(得分:2)

JavaScript编程不需要分号,但我建议您使用它。它使您的代码更具可读性,实际上是一种很好的实践,几乎所有很酷的编程语言都使用它。

站起来使用它,现在由你决定!

答案 5 :(得分:1)

如果没有抛出编译器错误,你应该没问题。但是你最好还是记得一直使用它们,因为你可能会遇到的一些语言如objective-c对它们的使用是坚定的。