Boolean运算符有3种:

1.逻辑NOT

逻辑NOT由!表示.与逻辑OR和逻辑AND运算符不同的是:逻辑NOT运算符返回的一定是Boolean值.

逻辑NOT运算符的行为如下:

  • 如果运算数是对象,返回false
  • 如果运算数是0以外的其他任何数字,返回false
  • 如果运算数是0,返回true
  • 如果运算数是null,返回true
  • 如果运算数是NaN,返回true
  • 如果运算数是undefined,发生错误
  • 对Boolean值求非,从而得到真正的Boolean值

例子:

        function display(value){document.write(value+"<br/>");}display(!new Object());        display(!100);display(!0);display(!null);display(!NaN);display(!true);display(!false);//undefineddisplay(!ss);

结果:

总结:

  • 如果运算数是0,null,NaN以及未定义的值,则求非之后,结果为true
  • 如果运算数是0以外的任何数字或对象,则求非之后,结果为false

2.逻辑AND运算符

逻辑AND运算符由&&表示.逻辑AND是简便运算,即:如果第一个运算数决定了结果,就不再计算第二个运算数,对于逻辑与来说,如果第一个运算数是false,无论第二个运算数的值是什么,都不可能等于true.

下面采用真值的方式来描述:

第一个操作数 第二个操作数 结果
true true true
true false false
false true false
false false false

逻辑AND运算符的运算数可以是任何类型的,不止是Boolean值.如果某个运算数不是原始的Boolean值,逻辑AND并不一定返回Boolean值.

  • 如果第一个运算数是对象,那么返回第二个运算数
  • 如果某个运算数是null,则返回null
  • 如果某个运算数是NaN,则返回NaN
  • 如果某个运算数是undefined,则发生错误

例子:

        function display(value){document.write(value+"<br/>");}var trueValue = true;var falseValue = false;var obj1 = new Object();obj1.name="obj1";var obj2 =new Object();obj2.name="obj2";var result;//如果第一个运算数是对象,另一个运算数是Boolean值,则返回Boolean值result = obj1 && trueValue;display(result); result = obj1 && falseValue;display(result); //如果第一个运算数是Boolean值,则会按照简便运算方式运行result = trueValue && obj1;//obj1 && true;display(result.name);result = falseValue && obj1;display(result);  display(trueValue && 'www')//如果两个运算数都是对象,则返回第二个对象result = obj1 && obj2;display(result.name);  //如果某个运算数是null,则返回nullresult = obj1 && null;display(result);//如果某个运算数是NaN,则返回NaNresult = obj1 && NaN;display(result);//如果某个运算数是undefined,则发生错误result = obj1 && ss;display(result);

结果:

总结:

  • 当变量为null,NaN以及未定义值的时候和false一样,拥有否决权,分别返回null,NaN,undefined.
  • 当运算数为对象时,都将通过运算.如果第一个运算数通过运算,那么将返回第二个运算数.
  • 当运算数未被声明时,引发错误.

3.逻辑OR运算符

逻辑OR运算符由||表示.逻辑OR运算符也是简便运算,如果第一个运算数为true,则不再计算第二个运算数.

下面采用真值的方式来描述:

第一个操作数 第二个操作数 结果
true true true
true false true
false true true
false false false

逻辑OR运算符的运算数可以是任何类型的,不止是Boolean值.如果某个运算数不是原始的Boolean值,逻辑OR并不一定返回Boolean值.

  • 如果第一个运算数是对象,则返回该对象
  • 如果第一个运算数为false,null,NaN,undefined,第二个运算数为null,则返回null
  • 如果第一个运算数为false,null,NaN,undefined,第二个运算数为NaN,则返回NaN
  • 如果第一个运算数为false,null,NaN,undefined,第二个运算数为undefined,则引发错误.

例子:

        function display(value){document.write(value+"<br/>");}var trueValue = true;var falseValue = false;var obj1 = new Object();obj1.name="obj1";var obj2 =new Object();obj2.name="obj2";var result;       //如果第一个运算数是对象,则返回该对象result = obj1 || trueValue;display(result.name); result = obj1 || falseValue;display(result.name);                 result = obj1 || obj2;display(result.name);  //如果第一个运算数为false,null,NaN,undefined,第二个运算数为null,则返回nulldisplay(false || null);//如果第一个运算数为false,null,NaN,undefined,第二个运算数为NaN,则返回NaNdisplay(null || NaN);//如果第一个运算数为false,null,NaN,undefined,第二个运算数为undefined,则引发错误display(NaN || ss);display(ss || ss);

结果:

转载于:https://www.cnblogs.com/oneword/archive/2009/12/24/1631344.html

Javascript--Boolean运算符相关推荐

  1. javascript关系运算符与逻辑运算符

    原文来自javascript关系运算符与逻辑运算符 一.关系运算符 用于进行比较的运算符称作为关系运算符:小于(<).大于(>).小于等于(<=).大于等于(>=).相等(== ...

  2. (4)javascript的运算符以及运算符的优先级

    运算符的使用方法 在javascript的程序中要完成各种各样的运算,是离不开运算符的. 在javascript中,按运算符类型可以分为算术运算符.赋值运算符.比较运算符.逻辑运算符.条件运算符等. ...

  3. JavaScript instanceof 运算符深入剖析

    简介: 随着 web 的发展,越来越多的产品功能都放在前端进行实现,增强用户体验.而前端开发的主要语言则是 JavaScript.学好 JavaScript 对开发前端应用已经越来越重要.在开发复杂产 ...

  4. JavaScript instanceof 运算符深入剖析【转载】

    http://www.ibm.com/developerworks/cn/web/1306_jiangjj_jsinstanceof/ instanceof 运算符简介 在 JavaScript 中, ...

  5. JavaScript Boolean(布尔)对象

    Boolean(布尔)对象用于将非布尔值转换为布尔值(true 或者 false),是三种包装对象:Number.String和Boolean中最简单的一种,它没有大量的实例属性和方法. 在线实例 检 ...

  6. 前端研习录(20)——JavaScript三元运算符

    前端研习录(20)--JavaScript三元运算符 版权声明 三元运算符 版权声明 本文原创作者:清风不渡 博客地址:https://blog.csdn.net/WXKKang   重拾前端记忆,记 ...

  7. JavaScript Boolean(逻辑)对象

    Boolean(逻辑)对象用于将非逻辑值转换为逻辑值(true 或者 false). 实例 检查逻辑值 检查逻辑对象是 true 还是 false. 完整的 Boolean 对象参考手册 我们提供 J ...

  8. 09.JavaScript算术运算符(加、减、乘、除、幂、余)、自增、自减、缩写、位移

    JavaScript算术运算符 章节目录 上一篇:<类型转换> 下一篇:<比较运算符> 运算符是数学计算中的概念,我们从小学就在学习的+.-.*./就是最基础的运算符. 运算符 ...

  9. JavaScript 扩展运算符

    文章目录 扩展运算符 使用扩展运算符复制数组 使用扩展运算符克隆数组 带对象的扩展运算符 剩余参数 参考文档     在本教程中,您将借助示例了解 JavaScript 扩展运算符.     扩展运算 ...

  10. Javascript各种运算符第五课(小一节)

    比较运算符 更多免费教学文章请关注这里 算数运算符: 就是加减乘除 注意: 如果运算过程中,例如 一个数字-一个字符串 那么会提示: NaN 在控制台 含义:not a number 表示非数字,其自 ...

最新文章

  1. java applet 缺陷_Java Applet在最新JRE上的奇怪性能行为(7.55)
  2. 【飘移】仅需7个动作完成“斯堪的纳维亚钟摆”飘移过弯教程
  3. 如何让网站打开更快第三弹--开启压缩篇
  4. Lua 元表(Metatable)
  5. c与python内存传递_python - 从Python向C ++传递COM指针数组 - 堆栈内存溢出
  6. 数据结构实验之栈五:下一较大值(一)
  7. 星外主机销售系统源码_业务员大客户销售订货订单管理系统源码开发外包解析...
  8. Filecoin将启动第一轮全球社区开发者二次方投票资助计划和线上Hackathon
  9. 电脑老是自动重启怎么回事??
  10. 寻找关键之年的榜样和标准
  11. win10您的windows许可证即将过期
  12. 小学计算机设备报表,小学信息技术教育及电教设备自查报告
  13. centos7密码破解
  14. python科技新闻爬取
  15. 不管发生什么事,最重要的是拥有乐观积极的心态,困难总会过去的。
  16. Hive 如何设置ReduceTask的数量
  17. jit java同步消除_聊聊JIT是如何影响JVM性能的
  18. java学业有成_祝贺学业有成励志的话
  19. Python大屏看板最全教程之Pyecharts图表
  20. python桌面实验小软件,实现地图信息整理为电子表格

热门文章

  1. matlab下的textread()
  2. 【数据平台】Eclipse+MapReduce开发环境(集群运行模式)
  3. Android内容提供程序
  4. JUC里面的相关分类|| java并发编程中,关于锁的实现方式有两种synchronized ,Lock || Lock——ReentrantLock||AQS(抽象队列同步器)
  5. const的使用 || 对象增强写法 (对象字面量)
  6. @EnableAsync @Async 的详解
  7. Java的知识点27——打印子孙级目录和文件的名称、统计文件夹的大小、编码与解码的应用
  8. matlab手写遗传算法解决一元函数最值问题(实例)
  9. CTFshow php特性 web134
  10. CTFshow 命令执行 web38