zoukankan      html  css  js  c++  java
  • 短路运算(逻辑运算是短路运算中最常见的一种)

    写在前面的知识:

    Boolean强制转换:

    除了NaN、null、""、undefined、0、function这几个为false外,其他皆为true;

    关于转换,等会我会再写一篇,专门讲string、int、Boolean转换。

    短路运算的符号:    ||   &&  !  或与非

    短路运算的原理:当有多个表达式时,左边的表达式值可以确定结果时,就不再继续运算右边的表达式的值;

    短路运算的规则:

    && 找假,先看第一个表达式的值,如果第一个表达式不是布尔类型,强制转换成布尔类型,转换若后为false,则返回第一个值(不是被强制转换后的值),否则返回第二个值

    ||   找真,先看第一个表达式的值,如果第一个表达式不是布尔类型,强制转换成布尔类型,转换若后为true,则返回第一个值(不是被强制转换后的值),否则返回第二个值

    !  非,   看表达式的值,如果表达式的值不是布尔类型,强制转换成布尔类型,若为true,则返回false,否则返回true。

    短路运算的例子:

    javascript代码:

    <script>
            console.log("短路运算的&和|只比较第一个表达式,并由第一个表达式和运算符号决定返回哪个值");
            console.log("&&测试");
            console.log("&&找假");
            console.log(true&&true);
            console.log(true&&false);
            console.log(false&&true);
            console.log(false&&false);
            console.log(true&&"abs");//直接显示第二个表达式的值abs
            console.log(false&&"abs");//直接显示第一个表达式的值false
            console.log(""&&"abs");//什么都没显示,因为第一个表达式经Boolean强制转换后是false,所以显示第一个值
            console.log("abs"&&"qwe");//直接显示qwe
    
            console.log("||测试");
            console.log("||找真");
            console.log(true||true);
            console.log(true||false);
            console.log(false||true);
            console.log(false||false);
            console.log(true||"abs");//直接显示true
            console.log(false||"abs");//直接显示abs
            console.log(""||"abs");//显示abs
            console.log("abs"||"qwe");//显示abs
    
            console.log("!测试");
            console.log(!true);
            console.log(!false);
            console.log(!"abs");//字符串abs经boolean强制转换后是true,!true是false
            console.log(!"");//字符串经boolean强制转换后是false, !false是true
    </script>

    控制台截图:

                    

  • 相关阅读:
    jquery 获取 input type radio checked的元素
    各种js验证规则
    centos7 vsftp xftp 解决无法显示远程文件夹,可登陆
    js浮点运算精度丢失的解决办法
    ThinkPHP 改装后的分页类
    亚马逊AWS开启之路
    上慕课从这里开始 (www-mooc.com)
    iptables httpd.conf详解
    微信带链接的文本消息推送
    IE8不支持响应式设计解决方法
  • 原文地址:https://www.cnblogs.com/huoan/p/5719591.html
Copyright © 2011-2022 走看看