我们知道 if条件判断是在各大语言中都很常见的,同时 else if 也在各大语言中常见,甚至在python中还拥有了 elif的简写。 所以同样的,在JavaScript中,也经常能够看到else if 的影子。 但是在我看了JavaScript高级程序设计这本书后,发现,在书中,只有if 和 else的定义,并没有所谓else if 的定义。 如下图
并且与红宝书上的定义结合起来,我们可以发现,在
if(condition) statement else statement2 这样的表达式中
statement2 并不是一定需要和if有关,或者是一个代码块(即直接else) 所以我们可以断定,JavaScript中没有else if 。else if中的if 是在原本的condition不成立的条件下新建立的一个if语句。
我们可以通过实践来验证一下
let a =true
if(a) {
console.log('a is true')
} else a = 123
console.log(a)
这段代码输出什么?
我们可以看到 因为 a 为 true 所以else中的内容并没有改变,如果我们将if中的判断改为!a呢?
let a =true
if(!a) {
console.log('a is true')
} else a = 123
console.log(a)
来看输出: