Skip to content

JS之必加分号的几种场景

场景1: 语义解析问题

JavaScript并不是在所有换行处都填补分号:只有在缺少了分号就无法正确解析代码的时候,JavaScript才会填补分号。

有人喜欢每行都加分号,有人喜欢不加分号。不需讨论那种风格正确,都需要注意一些场景。

举例:

javascript
var a
a
=
3
console.log(a)
var a
a
=
3
console.log(a)

var a a = 3 console.log(a)不加分号的时候没法解释var a a 以及a = 3 console.log(a) 因此,相当于下面写法:

js
var a;
a = 3;
console.log(a)
var a;
a = 3;
console.log(a)

可以预见,如果加分号、不加分号,都能保证语义化没有问题,这时候代码执行就会出问题了,例如:

js
var y = x + f
(a+b).toString()
var y = x + f
(a+b).toString()

场景2: return 、break 、 continue 以及 ++ --

  1. return 、break 、 continue

这些会强制补充分号:

js
return 、break 、 continue
return 、break 、 continue

例如:

js
return 
true
return 
true

相当于: return; true;

  1. ++--

可以用作表达式的前缀或者后缀。 如果用作后缀表达式,需要放在同一行。

js
x
++
y
x
++
y

等同于 x; ++y