多行条件判断
如果还要更细致地判断条件,可以使用多个 if…else… 的组合:
var age = 3;
if (age >= 18) {
alert('adult');
} else if (age >= 6) {
alert('teenager');
} else {
alert('kid');
}
上述多个 if…else… 的组合实际上相当于两层 if…else… :
var age = 3;
if (age >= 18) {
alert('adult');
} else {
if (age >= 6) {
alert('teenager');
} else {
alert('kid');
}
}
但是我们通常把 else if 连写在一起,来增加可读性。这里的 else 略掉了 {} 是没有问题的,因为它只包含一个 if 语句。注意最后一个单独的 else 不要略掉 {} 。
请注意 , if…else… 语句的执行特点是二选一,在多个 if…else… 语句中,如果某个条件成立,则后续就不再继续判断了。
试解释为什么下面的代码显示的是 teenager :
'use strict';
var age = 20;
if (age >= 6) {
alert('teenager');
} else if (age >= 18) {
alert('adult');
} else {
alert('kid');
}
由于 age 的值为 20 ,它实际上同时满足条件 age >= 6 和 age >= 18 ,这说明条件判断的顺序非常重要。请修复后让其显示 adult 。
如果 if 的条件判断语句结果不是 true 或 false 怎么办?例如:
var s = '123';
if (s.length) { // 条件计算结果为3
//
}
JavaScript把 null 、 undefined 、 0 、 NaN 和空字符串 '' 视为 false ,其他值一概视为 true ,因此上述代码条件判断的结果是 true 。