美文网首页
js 逻辑运算符 短路运算符 && || !! 的应用

js 逻辑运算符 短路运算符 && || !! 的应用

作者: alokka | 来源:发表于2020-06-09 15:31 被阅读0次

    首先简单说下逻辑运算符 && ||

    && 例:a && b
    1. 只要 && 前面是 false,无论 && 后面是true还是 false,结果都将返 && 前面的值;
    2. 只要 && 前面是 true,无论 && 后面是true还是 false,结果都将返 && 后面的值;
    || 例:a || b
    1. 只要 || 前面为 false,无论 || 后面是true还是 false,结果都返回 || 后面的值。
    2. 只要 || 前面为 true,无论 || 后面是true还是 false,结果都返回 || 前面的值。

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

        var flag = true;
        if(flag) {
        console.log(1);
        }   
        
        // 等于
        
        var flag = true;
        console.log(flag && 1); // 前面的值为true(存在)则返回后面的值 或者执行函数
    
        var flag = false;
        if(!flag) {
        console.log(1);
        }
        
        // 等于
        
        var flag = false;
        console.log(flag || 1);// 前面的值为false(不存在)则返回后面的值 或者执行函数
    
        // 逻辑运算符用法进阶
        var a = 5;
        var b;
    
        if(a > 10) {
            b = 10;
        }else {
            b = 5; 
        }
        console.log(b);
        
        // 等于
            
        var a = 5;
        var b;
        b = a > 10 && 10 || 5;
        console.log(b)
    

    说下逻辑运算符 !!

    首先在复习下 js 中布尔值为false的六种情况
    1、undefined(未定义,找不到值时出现)
    2、null(代表空值)
    3、false(布尔值的false,字符串"false"布尔值为true)
    4、0(数字0,字符串"0"布尔值为true)
    5、NaN(无法计算结果时出现,表示"非数值";但是typeof NaN==="number")
    6、""(双引号)或''(单引号) (空字符串,中间有空格时也是true)
    注意空数组空对象,负值转的布尔值时都为true

    "!!"操作符是判断变量是否真正为真(非null/undefined/false/NaN/""、''等)的很简明的实现方式,省去了大量的&&运算,如果用&&来实现求真逻辑,代码表现如下:
        if( obj!==null &&obj!==undefined && obj!==NaN && obj!=="" && obj!==false){
               // 
        }
    
    用 !!
        if( !!obj ){
                // 
        }
    

    相关文章

      网友评论

          本文标题:js 逻辑运算符 短路运算符 && || !! 的应用

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