zoukankan      html  css  js  c++  java
  • JavaScript-条件判断

    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...语句中,如果某个条件成立,则后续就不再继续判断了。

    由于age的值为20,它实际上同时满足条件age >= 6age >= 18,这说明条件判断的顺序非常重要。请修复后让其显示adult

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

    var s = '123';
    if (s.length) { // 条件计算结果为3
        //
    }
    

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

    ————————————————————————————

    出处:https://www.liaoxuefeng.com/

  • 相关阅读:
    编程日志 Vue-element-admin
    JS判断全屏,Jquery绑定动态元素Parent元素单击事件
    查询所有表内容-SQL
    正则分割获取字符串中的数字部分(包括连续数字)(连续数字的分割获取)
    nginx本地正常访问,外网无法访问
    nuget 配置无效
    URL获取上级目录
    VS 调试项目运行不发布,允许其他网内直接访问
    小数(decimal,double) 截取两位或多位,不四舍五入
    Linq简单语句记录
  • 原文地址:https://www.cnblogs.com/970119449blog/p/8117606.html
Copyright © 2011-2022 走看看