JavaScript-逻辑元算基础

逻辑运算又称布尔代数,就是布尔值的"算数"运算。
逻辑运算符包括:1,逻辑与(&&) 2,逻辑或( || ) 3,逻辑非( ! )

16.2.1 逻辑与运算

// 16.2.1 逻辑与运算
            var user; //定义变量
            (! user && console.log("没有赋值"));//返回提示信息
            // 等效于
            var userid;
            if(! userid){
                console.log("没有赋值01");
            }

返回结果预览:
逻辑与运算.png
// 使用逻辑与运算符可以代替设计多重分支结构
            var bb = 3;
            (bb == 1) &&console.log(1);
            (bb == 2) &&console.log(2);
            (bb == 3) &&console.log(3);
            (! bb) &&console.log("null");
            // 上面的代码等效于下面的多重分支结构
            var cc = 3;
            switch(cc){
                case 1:
                    console.log(1);
                    break;
                case 2:
                    console.log(2);
                    break;
                case 3:
                    console.log(3);
                    break;
                default:
                   console.log("null");
            }

返回预览:
逻辑与运算01.png

16.2.2 逻辑或运算

逻辑或运算(||):如果两个操作都为true,或者其中一个为true,否则返回false。逻辑或也是一种短路逻辑

 // 针对下面四个表达式
var tvb = 3;
(tvb == 1) &&console.log(1);
(tvb == 2) &&console.log(2);
(tvb == 3) &&console.log(3);
(! tvb) &&console.log("null");
// 可以使用逻辑或对其进行合并
var tvb = 3;
(tvb == 1) &&console.log(1) ||
(tvb == 2) &&console.log(2) ||
(tvb == 3) &&console.log(3) ||
(! tvb) &&console.log("null");

逻辑或运算.png
由于&&运算符的优先级高于||运算符的优先级,所以不必使用小括号进行分组。如果使用小括号分组前后,代码更容易阅读

var bv = 5;
((bv == 1) &&console.log(1)) ||
((bv == 2) &&console.log(2)) ||
((bv == 3) &&console.log(3)) ||
((bv == 4) &&console.log(4)) ||
((bv == 5) &&console.log(5)) ||
((! bv) &&console.log("null"));

16.2.3 逻辑非运算

逻辑非运算(!)直接放在操作数之前,把操作数的值转换为布尔值,然后取反并返回。

// 下面列举特殊操作的逻辑非运算值
console.log( ! {}); //如果操作数是对象,则返回false
console.log(! 0); //如果操作数是0,则返回true
// 如果操作数是非0的任何数字,则返回false
console.log(! (s = 5));
// 如果操作数是null,则返回true
console.log(! null);
// 如果操作数是NaN,则返回true
console.log(! NaN);
// 如果操作数是Infinity,则返回false
console.log(! Infinity);
// 如果操作数是-Infinity,则返回false
console.log(! (-Infinity));
// 如果操作数是undefined,则返回true
console.log(! undefined);
逻辑非运算01.png
    /*
    如果对于操作数执行两个逻辑非运算操作,就相当于把操作数转换为布尔值
    */ 
    console.log(!0);//返回true
    console.log(!!0);//返回false
    /*
    注意:
    逻辑与、逻辑或运算的返回值不必是布尔值,但是逻辑非运算的返回值一定是布尔值。
    */ 
JS逻辑运算基础学习.png

你可能感兴趣的:(JavaScript-逻辑元算基础)