欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JavaScript里的分号,你加还是不加?

程序员文章站 2022-03-07 21:12:49
目录1.前言2.什么情况下可以不加分号2.1每条语句各占一行2.2 不加分号则上下两行代码无法解析3.特殊情况3.1 return ,break和continue3.2 有 ”++“ 或 ”--“运算符时4.使用分号的好处5.参考文献6.结语1.前言我们接触的大部分编程语言,都会以 分号 作为代码的结束,将程序语句分隔开来,JavaScript同样如此。这对增强代码的整洁性和可读性是非常重要的。缺乏分隔符,一条语句的结束就变成了另一条语句的开始,反之亦然。在我们初学编程,接触C语言的时候,就常常因为代码...

1.前言

我们接触的大部分编程语言,都会以 分号 作为代码的结束,将程序语句分隔开来,JavaScript同样如此。这对增强代码的整洁性和可读性是非常重要的。缺乏分隔符,一条语句的结束就变成了另一条语句的开始,反之亦然。在我们初学编程,接触C语言的时候,就常常因为代码结尾没有分隔符或者分隔符写错,而引发程序bug。

对于很多的编程语言,在一条语句结尾加上分号是必须的。然而,对于JavaScript,则并不如此。在JavaScript中,如果语句各自独占一行,通常可以省略语句之间的分号(程序的结尾或者右“}”之前的分号也可以省略。)

因此,在编写JavaScript程序时,一般会有两种编码习惯,加分号不加分号

  • 加分号: 许多程序员使用分号来明确标记语句的结束,即使在并不完全需要分号的时候也是如此;
  • 不加分号: 另一种风格是,在任何可以省略分号的地方,都将其省略,只有在不得不用的时候才使用分号。

下面来记录和讲解一下,JavaScript中使用分号的细节问题。

2.什么情况下可以不加分号

不加分号的情况下,JavaScript在解析时会自动插入分号,在满足以下两个条件的情况下,JavaScript会自动插入分号,可以不加分号:

2.1每条语句各占一行

如果多条语句中每条语句各占一行,则语句结尾的分号可以省略,JavaScript在解析时会自动填补分号,例如:

let x = 10
let y = 20
console.log(x+y) //3

如果写在同一行,则必须要加分号:

let x , y
x = 10  y = 30  
console.log(x+y) //SyntaxError: Unexpected identifier

不写分号报错。

2.2 不加分号则上下两行代码无法解析

JavaScript并不是在所有换行的地方都填补分号,只有在缺少了分号就无法正确解析代码的情况下,才会填补分号;

如下示例:

let a 
a
=
3
console.log(a) //3

显然,代码被解析为:

let a;
a=3;
console.log(a);

在2行 3行都没有插入分号。

注意:

这些语句的分隔规则会导致一些意想不到的情形,如以下的一个示例;

let m = n + f
(b+c).toString()

但该语句最终会被解析为:

let m = n + f(a+b).toString();

这和源代码表达的意思不合,但这解析下来并不会出错。

3.特殊情况

通俗来讲,如果一条语句以 “(” ,"[" , “/” , “+” , “-” 开始,它们极有可能和前面一条语句一起解析。

如果前一条语句无法和后一条语句合并解析,JavaScript才会在第一条语句后插入分号,这是通用规则。

但是,有2个例外,

3.1 return ,break和continue

如果涉及 return 、break、continue 时,如果这三个关键字后紧跟换行,则该关键字后一定会插入分号;

如:

return
true

一定会被解析成

return;
true;

这显然违背了代码的本意。

3.2 有 ”++“ 或 ”–“运算符时

如果涉及 ”++“ ,”–“运算符的时候,这些表达式可以作为表达式的前缀,也可以作为表达式的后缀。

如果将其作为表达式的后缀的话,它和表达式应该在同一行,否则,JavaScript会在行末添加添加分号,并且 ”++“ "–"会被作为下一句的前缀操作符与下一句一起解析。

如:

x
++
y

这段代码解析为:

x;
++y;

而不是:

x++;y;

4.使用分号的好处

  • 加上分号可以避免很多错误(例如,不完整的输入),开发人员可以放心的通过删除多余的空格来压缩代码;
  • 加上分号在某些情况下可以增进代码的性能,因为这样解析器就不用花多余的时间去推测在哪里添加分号了。

5.参考文献

  • 《JavaScript高级程序设计》

  • 《JavaScript权威指南》

6.结语

天气好热,去开个西瓜吃。

本文地址:https://blog.csdn.net/CherishTheYouth/article/details/107896413

相关标签: 每天学点JavaScript