zoukankan      html  css  js  c++  java
  • 逻辑运算符——&&和||(短路判断)和!

    JavaScript基础:逻辑运算符——&&和||(短路判断)和!

    原文:https://www.cnblogs.com/qiong2017/p/7728336.html

    一、&&:所有条件都为true,返回true;只要有一个是false,返回false;不一定返回boolean类型值

    1、可以操作任意类型的数据,不只是布尔型;(除了null、undefined、NaN不会隐式转换)

    var a = 33,b=55,c=88

    console.log(a<b&&b<c);//返回true

    如果在有一个操作数不是布尔值得情况下,逻辑与就不一定返回布尔值,此时它遵循下列规则

    • 如果前面操作数隐式类型转换后为true,则返回最后一个操作数:

              console.log(77&&33);//返回33

              console.log(true&&9&&"您好");//返回“您好”

              console.log(80 && true );//返回true

    • 如果前面有一个隐式转换后不是true,则返回第一个隐式转换为false的值(即短路的值)

              console.log(“”&&true);//返回空格

              console.log(44&&0&&"hello");//返回0

              console.log(55&&false&&0);//返回false

              console.log(0&&null&&55);//返回0

              console.log(NaN && 16 && "");//返回NaN

              console.log("" && NaN && 12);//返回“”空字符串

    2、返回值不一定是boolean类型。null,返回null;undefined,返回undefined;NaN,返回NaN

              console.log(55*“abc”&&true);//返回NaN

              console.log(null&&true);//返回null

              console.log(undefined&&true);//返回undefined

              console.log(undefined&&null&&9&&NaN);//返回undefined

    二、||:只要一个条件为true,则返回true;都为false,则返回false

    1、可以操作任意类型的数据,不只是布尔型;

    2、返回值不一定是boolean类型。

    (有一个为true,则返回true,后面就被短路啦;都为false,一直走到最后一个,打印左后一个)

              console.log(33<22||33>11);//返回true

              console.log(undefined || null || 0);//返回0

              console.log(undefined || 88 || 99 );//返回88

              console.lof(undefined || 33>10 || false);//返回true 

              console.log(null || undefined || NaN);//返回NaN

              console.log(NaN || undefined) ;//返回undefined

              console.log("hellow" || NaN);//返回hellow

    三、!(逻辑非):返回值一定是boolean值

     

    1、可以操作任意类型的数据,返回值一定是boolean值;

    2、!!同事使用两个逻辑非操作符时——两次求反,为本来代表的boolean值

              console.log(!false);//true

              console.log(!88);//false

              console.log(!NaN);//true

              console.log(!!NaN);//false

              console.log(!!"hell");//true

  • 相关阅读:
    DBCP,C3P0与Tomcat jdbc pool 连接池的比较
    MySQL:创建、修改和删除表
    MySQL添加用户、删除用户与授权
    王垠 :写给支持和反对《完全用Linux工作》的人们 ( 2004/8/26)
    王垠:完全用Linux工作 (2003)
    王垠:什么是“对用户友好”(2012/05/18)
    顿悟:Linux是拿来用的,不是拿来折腾的
    《从零开始搭建游戏服务器》MySQL安装配置
    ehcache 缓存
    servlet
  • 原文地址:https://www.cnblogs.com/jiangyuzhen/p/11049302.html
Copyright © 2011-2022 走看看