我在 JavaScript 的某些地方错过了分号,但它不会在任何浏览器中引发错误。是;
在最后需要的?
最后需要分号吗?
IT技术
javascript
2021-02-06 12:48:25
6个回答
这个概念被称为JavaScript 分号插入或“自动分号插入”。这篇博文:JavaScript Semicolon Insertion: Everything you need to know 使用标题下的示例以易于理解的方式很好地概述了这个概念:
- 允许使用分号的地方
- 可以省略分号的地方
- 规则
它甚至深入研究了有关该主题的官方 ECMAScript 规范。
Javascript 做了一些称为“分号插入”的事情,这意味着您实际上可以编写在某些地方省略分号的代码,并且在解析代码时基本上会为您添加分号。
发生这种情况时的规则有点复杂。为简单起见,许多开发人员只是假装分号插入不存在。
您可以编写没有分号的 javascript,您只需要在以 parantesis(
或括号开头的行中插入它们[
。
该sugarjs times()
功能是一个很好的例子:
<script>
var somthing = 1 + 3
;(5).times(function(n){
console.log(n + " line") //prints "X line" 5 times
})
</script>
说用分号编写代码使其更具可读性是荒谬的。它使您的代码更加混乱。查看此页面上没有分号的代码,并告诉我它的可读性较差。它更易读、更整洁、更干净、更优雅。分号是丑陋的和不必要的。看这篇文章:https : //mislav.net/2010/05/semicolons/
编辑 01-20-2020 :(实际上有一些不明确的情况,不包含分号会导致运行 JS 代码出现问题。实际上发生的情况是 JS 并不总是知道如何为您智能地插入分号。在英文中我可以将其与牛津逗号进行比较的最接近的是有些人认为您不需要的牛津逗号,但我们都看过有关缺少标点符号会改变句子含义的笑话。除非您想了解所有边缘情况或更糟找出困难的方法,然后建议始终使用它们。)
JavaScript 编程不需要分号,但我建议您使用它。它使您的代码更具可读性,实际上是一种很好的做法,几乎所有很酷的编程语言都使用它。
站出来使用它,现在就看你了!