0
点赞
收藏
分享

微信扫一扫

js条件判断

JavaScript使用​​if () { ... } else { ... }​​​来进行条件判断。例如,根据年龄显示不同内容,可以用​​if​​语句实现如下:

var age = 20;
if (age >= 18) { // 如果age >= 18为true,则执行if语句块
alert('adult');
} else { // 否则执行else语句块
alert('teenager');
}

其中​​else​​语句是可选的。如果语句块只包含一条语句,那么可以省略​​{}​​:

var age = 20;
if (age >= 18)
alert('adult');
else
alert('teenager');

省略​​{}​​的危险之处在于,如果后来想添加一些语句,却忘了写​​{}​​,就改变了​​if...else...​​的语义,例如:

var age = 20;
if (age >= 18)
alert('adult');
else
console.log('age < 18'); // 添加一行日志
alert('teenager'); // <- 这行语句已经不在else的控制范围了

上述代码的​​else​​子句实际上只负责执行​​console.log('age < 18');​​,原有的​​alert('teenager');​​已经不属于​​if...else...​​的控制范围了,它每次都会执行。

相反地,有​​{}​​的语句就不会出错:

var age = 20;
if (age >= 18) {
alert('adult');
} else {
console.log('age < 18');
alert('teenager');
}

这就是为什么我们建议永远都要写上​​{}​​。

多行条件判断

如果还要更细致地判断条件,可以使用多个​​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;

举报

相关推荐

0 条评论