美文网首页
JS判断,比较及逻辑运算

JS判断,比较及逻辑运算

作者: 是小张啊啊 | 来源:发表于2020-03-11 17:02 被阅读0次
    判断语句 比较运算

    在js中,凡是运算都会有返回值
    在比较运算中,返回值是true或false 即布尔值

    var a = 4,
        b = 10,
        c = 4,
        d = "4";
    console.log(a == d);//当采用 == 判断两个变量的“值”是否相等时,会有一个变量会做隐式转换,即不完全等于
    console.log(a === d);//不仅值相等,数据类型也要相等,即完全等于,其执行效率更高!!!!
    
    if 语句

    在if的(条件判断)会产生隐式类型转换!

    if(document.getElementById('box')){}
    if("false"){}
    

    不执行if语句,执行else语句的几种情况:
    1.false
    2.空字符串
    3.0
    4.null 空指针

    if(null){
      alert('hello')
    }
    else{
      alert("no!")
    }
    

    5.undefined
    6.NaN

    var n;
    var nan = n + 1;
    console.log(typeof nan);//不是数的数
    if(nan){
      alert('hello')
    }
    else{
      alert("no!")
    }
    
    三目运算

    条件 ? 真语句:假语句;其优先级高于赋值运算
    注意::对于很长的比较语句,最好不要用三目运算!!!

    oBox.title == "zhaosi" ? oBox.title = "lisi" : oBox.title = "zhaosi";
    
    
    //先执行三目运算   再赋值
    oBox.title =       oBox.title == "zhaosi" ? "lisi" : "zhaosi";
     
    var bool = true;
    bool = bool ? false : true;
    
    switch 语句

    替代多个if else 语句相比较的语句
    每一个case 的break 必须写,表示退出此次switch循环

    switch(a){
      case 1:
        console.log(1);
        break;
    case 2:
        console.log(2);
        break;
    case 3:
        console.log(3);
        break;
    case 4:
        console.log(4);
        break;
    default:
        console.log("所有情况都不符合时,默认进入defaule(其他)");
        break;
    }
    
    字符串比较

    会按照 ASCII码表顺序挨个比较

    var a = "abc";
    var b = "acd";
    console.log(a>b);
    
    逻辑运算

    逻辑运算优先级:
    !优先级很高
    先&& 再||

    • 两侧都为布尔值
      && 两侧都为真,则返回真
      || 两侧都为假,则返回假
    • 两侧不是布尔值
      && 两侧遇到假就停止,返回当前值,到头之后返回最后一个值
    var a = 5 && 0 && 6;//0是假,返回当前值,返回a = 0
    
    var a = 5 && document>getElementByTagName('p') && 6;
    //找不到getElementByTagName('p'),但是返回的是一个空的类数组,是真,所以 a = 6
    
    var a = 5 && document>getElementById('box') && 6;
    //找不到document>getElementById('box'),返回的是null,是假
    //停止,返回当前值,所以a = null
    

    || 两侧遇到真停止,返回当前值,到头之后返回最后一个值

    var b = 0 || 4 || 5;
    //返回b = 4
    
    var b = 1 || 2 && 5;
    //&&优先级高于||,先运算2&&5,得到5,再运算1||5,遇到真就停止,1为真,所以返回b = 1
    
    var b = " " || 2 && 0;
    //返回0,优先运算 2&&0,得到0,再运算" " || 0," "和0都为假,返回最后一个值0
    

    !取反运算,返回布尔值

    var c = "hello";
    c = !c;
    //得到的是fasle
    

    相关文章

      网友评论

          本文标题:JS判断,比较及逻辑运算

          本文链接:https://www.haomeiwen.com/subject/kfxbrftx.html