我们用JavaScript编程时,通常会看到两种编码风格。一种是一条语句结束就都带上分号;另外一种是能够省略语句之间的分号,就都把它省略了。这是每个程序员编程的风格style,今天来总结下,那些情况能够省略分号呢?
JavaScript并不是在换行出都填补分号:只是在缺少了分号就无法正确解析代码的时候,JavaScript才会填补分号。
```javascript
a = 3;
b = 4;
```
在这种情况下,两条语句用两行书写,第一个分号是可以省略掉的。
```javascript
a = 3; b = 4;
```
在这种情况下,第一个分号就不能被省略掉。
如果当前语句和下一行语句无法合并解析,JavaScript则在第一行填补分号,这是通用规则,但有两个例外。第一个例外是在涉及return、break和continue语句的场景中。如果这三个关键字后紧跟着换行,JavaScript则会在换行处填补分号。例如:
return
true;
JavaScript会解析成: return; true;
而代码的本意是: return true;
SO,在return、break和continue和随后的表达式之间不能有换行。如果添加了换行,程序则只有在极特殊的情况下才会报错。第二个例外是在涉及“++”和“- -”的时候。这些运算符可以作为表达式的前缀,也可以当作表达式的后缀。如果将其用作后缀表达式,它和表达式在同一行。否则,行尾将补分号,同时“++”或“- -”将会作为下一行代码的前缀操作符与之一起解析,例如:
x
++
y
这段代码将解析为“x; ++y”,而不是"x++; y"。
文章摘自《JavaScript权威指南(第6版)》