一、&&:所有条件都为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

最新文章

  1. wow经典台词
  2. (译文)MVC通用仓储类
  3. 【STL】next_permutation的原理和使用
  4. ural 1218. Episode N-th: The Jedi Tournament
  5. 【sinatra】安装测试
  6. 转:解决OM的Price List输入找不到对应库存的ITEMS的问题
  7. Javascript经典实例 - 正则表达式
  8. android基于XMPP的消息推送机制
  9. 支持iOS9 Universal links遇到的问题
  10. 数据结构与算法之递推算法 C++与PHP实现
  11. Java 9 揭秘(1.Java入门介绍)
  12. HTML &lt;td&gt; 标签的 rowspan 属性
  13. hdu 5340 (manacher)
  14. [POI2000] 最长公共子串
  15. html 转 PDF wkhtmltopdf image 不能显示的问题
  16. Linux VPS自动定时备份网站文件和MYSQL数据库到FTP空间(LNMP)
  17. jdk各版本特性
  18. webdriver问题汇总
  19. AndroidO Treble架构下Hal进程启动及HIDL服务注册过程【转】
  20. jQuery页面加载初始化常用的三种方法

热门文章

  1. 说Gradle
  2. hdu-2036求任意多边形面积
  3. Jenkins自动化CI CD流水线之4--Master-Slave架构
  4. SQL 优化通用方法
  5. python_案例综合:教材记录管理
  6. 利用划分树求解整数区间内第K大的值
  7. (转)Linux命令之md5sum
  8. Kudu的性能测试
  9. &amp; 和nohup使用
  10. rman对应format参数说明