场景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 以及 ++ --
- return 、break 、 continue
这些会强制补充分号:
js
return 、break 、 continuereturn 、break 、 continue例如:
js
return
truereturn
true相当于: return; true;
++和--
可以用作表达式的前缀或者后缀。 如果用作后缀表达式,需要放在同一行。
js
x
++
yx
++
y等同于 x; ++y