[犀牛书笔记]-分号的一些细节
风格
JavaScript中分号的书写有两种风格:
- 使用明确的分号标记语句结束,即便这些分号并非必需
- 尽可能省略分号,只有在极少数情况下才用
一些细节
JavaScript并非任何时候都把换行符当作分号,只是在不隐式添加分号就无法解析代码的情况下才这么做。
1
2
3
4
5
6
7let a
a
=
3
console.log(a)
// 上面代码将被解析成如下代码
let a; a = 3; console.log(a)根据上面所述,如果语句以( 、 [、/ 、 + 或 - 开头,就有可能被解释为之前语句的一部分 。 实践中以/、+和-开头的语句极少, 但以 (和[ 开头的语句则并不鲜见, 至少在某种JavaScript 编程风格下经常会看到 。 有的程序员 喜欢在所有这种语句前面都防御性地添加一个分号 ,这样即使它前面的语句被修改 ,删掉了之前末尾的分号,也不会影响当前语句:
1
2let x = a
;[x, x+1, x+2].forEach(console.log)这三种情况,在其后续没有分号时,换行符必定被解析成分号,而不考虑后续的代码能不能被解析成当前语句的一部分:
- return、throw、yield、break和continue语句,这些语句后的换行符必定会被解释称分号
- ++ 和 – 操作符
- 箭头函数的 => 符号