多行条件判断

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