摘自《你不知道的 JavaScript》,原文简单易懂,我就直接 Copy 了。
else if 和 可选代码块
很多人误以为 JavaScript 中有 else if,因为我们可以这样来写代码:
if (a) {
// ...
} else if (b) {
// ...
} else {
// ...
}
事实上 JavaScript 没有 else if,但 if 和 else 只包含单条语句的时候可以省略代码块的 { }
。下面的代码你一定不会陌生:
if (a) doSomething(a);
很多 JavaScript 代码检查工具建议对单条语句也应该加上 { }
,如:
if (a) { doSomething(a); }
else 也是如此,所以我们经常用到的 else if 实际上是这样的:
if (a) {
// ...
} else {
if (b) {
// ...
} else {
// ...
}
}
if(b){...}else{...}
实际上是跟在 else 后面的一个单独的语句,所以带不带 { }
都可以。换句话说,else if 不符合前面介绍的编码规范,else 中式一个单独的 if 语句。
else if 极为常见,能省掉一层代码缩进,所以很受青睐。但这只是我们自己发明的用法,切勿想当然的认为这些都属于 JavaScript 语法的范畴。