本节书摘来自异步社区《编写可维护的JavaScript》一书中的第1章,第1.5节,作者: 【美】Nicholas C. Zakas 译者: 李晶 , 郭凯 , 张散集 更多章节内容可以访问云栖社区“异步社区”公众号查看。
1.5 空行
在编程规范中,空行是常常被忽略的一个方面。通常来讲,代码看起来应当像一系列可读的段落,而不是一大段揉在一起的连续文本。有时一段代码的语义和另一段代码不相关,这时就应该使用空行将它们分隔,确保语义有关联的代码展现在一起。我们可以为1.1节里的示例代码加入一些空行,以更好地提升代码的可读性,下面是最初的代码:
if (wl && wl.length) {
for (i = 0, l = wl.length; i < l; ++i) {
p = wl[i];
type = Y.Lang.type(r[p]);
if (s.hasOwnProperty(p)) {
if (merge && type == 'object') {
Y.mix(r[p], s[p]);
} else if (ov || !(p in r)) {
r[p] = s[p];
}
}
}
}
给这段代码添加了几个空行之后,得到:
if (wl && wl.length) {
for (i = 0, l = wl.length; i < l; ++i) {
p = wl[i];
type = Y.Lang.type(r[p]);
if (s.hasOwnProperty(p)) {
if (merge && type == 'object') {
Y.mix(r[p], s[p]);
} else if (ov || !(p in r)) {
r[p] = s[p];
}
}
}
}
这段示例代码中所展示的编程规范是在每个流控制语句之前(比如if和for语句)添加空行。这样做能使你更流畅地阅读这些语句。一般来讲,在下面这些场景中添加空行也是不错的主意。
在方法之间。
在方法中的局部变量(local variable)和第一条语句之间。
在多行或单行注释之前。
在方法内的逻辑片段之间插入空行,提高可读性。
但并没有一个编程规范对空行的使用给出任何具体建议,Crockford的编程规范也只提到要审慎地使用空行。