美文网首页
短路运算

短路运算

作者: AriesMiki | 来源:发表于2021-11-09 17:03 被阅读0次

以下代码讲述javascript逻辑运算符&&和||短路运算的执行结果和总结。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>短路运算</title>

    <script>
        // &&短路现象
        // &&的执行结果是只要有一个转化为布尔值是false,最终的结果都是false
        console.log(true && true); //true
        console.log(true && false); //false
        console.log(false && true); //false
        console.log(false && false); //false
        console.log("-----------------");

        // &&的短路现象是指多个值,隐式转换成布尔值去比较,第一个转化成布尔值为false的,就是运行结果,后面的都不运行了
        console.log(0 && true);//0
        console.log(1 && 0); //0
        console.log(NaN && 1 && 100 && 1000); //NaN
        console.log(1 && null && 100 && 1000); //null
        // 如果前面转化成布尔值都为true,则最终结果是最后一个值
        console.log(2 && 1 && 1000 && 100); //100
        console.log("-----------------");

        // ||短路现象
        // ||的执行结果是只要有一个转化为布尔值是true,最终的结果都是true
        console.log(true || false);//true
        console.log(false || true);//true
        console.log(true || true);//true
        console.log(false || false);//false

        console.log("-----------------");

        // ||的短路现象是指多个值,隐式转换成布尔值去比较,第一个转化成布尔值为true的,就是运行结果,后面的都不运行了
        console.log(1 || false); //1
        console.log(false || 2);//2
        console.log(100 || 200 || 0 || null); //100
        console.log(0 || 88 || null || 200 || 555 || 666 || 300); //88

        // 如果前面转化成布尔值都为false,则最终结果是最后一个值
        console.log(0 || null); //null
        console.log(null || 0 || undefined || NaN || false || 300); //300

        console.log("-----------------");

        // &&和||的短路现象
        console.log(100 && 0 || 77 && 88 || null && NaN || 0);//88
        // console.log(true && false || true && true || false && false || false);
        // console.log(false || true || false || false); 
        console.log(8 || 9 || 0 && 2 || null && 99 || 88 && 65);//8
        //console.log(true || true || false && true || false && true || true && true);
        console.log(0 || null || 88 && 99 || NaN && 78 || 77 && 99 && 200); //99
        // console.log(false || false || true && true || false && true || true && true && true); 
        console.log(0 || null || 88 && 0 || NaN && 78 || 77 && 99 && 200); //200
        // console.log(false || false || true && false || false && true || true && true && true);
        // console.log(false || false || false || true || true && true && true);
        console.log(0 || null || 88 && 0 || NaN && 78 || null && 0 && 200); //null
        // console.log(false || false || true && false || false && true || false && false && true);
        // console.log(false || false || false || false || false && false && true); 
        console.log(0 || null || 88 && 0 || NaN && 78 || 1 && 0 && 200); //0
        // console.log(false || false || true && false || false && true || true && false && true);
        // console.log(false || false || false || false || true && false && true); 
        console.log(0 || null || 88 && 0 || NaN && 78 || 100 && 99 && null); //null
        //console.log(false || false || true && false || false && true || true && true && false);
        //console.log(false || false || false || false || false);

        // 总结:
        // 当&&和||同时出现的时候,先把所有内容转化成布尔值
        // 再把&&按照&&短路现象规则,算出&&的结果
        // 短路运算的最终结果是只剩下||运算符的时候,第一个能出现true的值
        // 如果只剩下||运算符的时候,前面都没有出现true,则最终结果是最后一个值

    </script>
</head>
<body>

</body>
</html>

相关文章

  • 短路运算(重点)

    短路运算 与运算 逻辑或运算

  • Java 长短路逻辑运算

    长路与运算 & 短路与运算 && 长路或运算 | 短路或运算 || 长路与运算 & 运行如下程序: 返回结果为: ...

  • Java--逻辑运算符

      逻辑运算的操作数和运算结果都是boolean值。 逻辑运算符   短路与和短路或采用短路的方式。从左到右计算,...

  • 短路运算

    && 前真继续 || 前假继续

  • 短路运算

    以下代码讲述javascript逻辑运算符&&和||短路运算的执行结果和总结。

  • js基本功03

    短路运算:&& || &&找假 如果&&运算中第一个操作数不是boolean类型也不是关系表达式,则进行短路运算 ...

  • 【003期】JavaSE面试题(三):JavaSE语法(1)

    一、& 和 && 的区别? &运算符有两种用法: 按位与 逻辑与 &&运算符是短路与运算。逻辑与跟短路与的差别是很...

  • go基础(二) for循环

    一.逻辑运算符(唯一) &&,短路与||,短路或!,非逻辑与&&运算优先级高于逻辑或|| 二.for循环嵌套 1....

  • &&,||

    长路和短路 长路将逻辑运算符两侧运算执行完后执行逻辑运算;短路先执行逻辑运算符左侧部分,符合,就不再执行右侧部分。...

  • JS 布尔判定和短路运算

    && 和 || 也叫短路运算符 &&:只要碰到了假值(false),就会短路,并返回该假值, 只要短路,不会继续执...

网友评论

      本文标题:短路运算

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