Javascript简明教程(5) 条件判断

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

[JavaScript] 纯文本查看 复制代码
001
002
003
004
005
006
var age = 20;
if (age >= 18) { // 如果age >= 18为true,则执行if语句块
    alert('adult');
} else { // 否则执行else语句块
    alert('teenager');
}

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

[JavaScript] 纯文本查看 复制代码
001
002
003
004
005
var age = 20;
if (age >= 18)
    alert('adult');
else
    alert('teenager');

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

[JavaScript] 纯文本查看 复制代码
001
002
003
004
005
006
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...的控制范围了,它每次都会执行。

多行条件判断

如果还要更细致地判断条件,可以使用多个if...else...的组合:

[JavaScript] 纯文本查看 复制代码
001
002
003
004
005
006
007
008
var age = 3;
if (age >= 18) {
    alert('adult');
} else if (age >= 6) {
    alert('teenager');
} else {
    alert('kid');
}

如果if的条件判断语句结果不是truefalse怎么办?例如:

[JavaScript] 纯文本查看 复制代码
001
002
003
004
var s = '123';
if (s.length) { // 条件计算结果为3
    //
}

JavaScript把nullundefined0NaN和空字符串''视为false,其他值一概视为true,因此上述代码条件判断的结果是true


http://www.sodu666.com/HaiZeiZhiShenJiJinHua/

http://www.ququer.org/

原文地址:https://www.cnblogs.com/yaogua/p/6641123.html