场景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 、 continue
return 、break 、 continue
例如:
js
return
true
return
true
相当于: return; true;
++
和--
可以用作表达式的前缀或者后缀。 如果用作后缀表达式,需要放在同一行。
js
x
++
y
x
++
y
等同于 x; ++y