zoukankan      html  css  js  c++  java
  • JavaScript学习总结(四)——逻辑OR运算符详解

     

      在JavaScript中,逻辑OR运算符用||表示

    1 var bTrue = true;
    2 var bFalse = false;
    3 var bResult = bTrue || bFalse;

    下面的真值表描述了逻辑AND运算符的行为:

    运算数 1 运算数 2 结果
    true true true
    true false true
    false true true
    false false false

    在JavaScript中,0,"",false,null,undefined,NaN均表示false,

      可以用如下的代码证明:

    复制代码
     1   <script type="text/javascript">
     2      var bFalse = false;//bool类型
     3      var strEmpty = "";//空字符串
     4      var iZero = 0;//数是0
     5      var oNull=null;//null
     6      var oUndefined;//undifined
     7      var oNaN=NaN;//NaN
     8     /*
     9     判断JavaScript 变量的 Boolean 值时,也可以使用逻辑 NOT 运算符。这样做需要在一行代码中使用两个 NOT 运算符。
    10     无论运算数是什么类型,第一个 NOT 运算符返回 Boolean 值。第二个 NOT 将对该 Boolean 值求负,从而给出变量真正的 Boolean 值。
    11     */
    12     document.write("<PRE>");
    13     document.writeln("布尔数false的逻辑值是 " + (!!bFalse));
    14     document.writeln("空字符串(\"\")的逻辑值是 " + (!!strEmpty));
    15     document.writeln("数字0的逻辑值是 " + (!!iZero));
    16     document.writeln("NaN的逻辑值是 :" + (!!oNaN));
    17     document.writeln("null的逻辑值是 " + (!!oNull));
    18     document.writeln("undefined的逻辑值是 " + (!!oUndefined));
    19     document.write("</PRE>");
    20   </script>
    复制代码

    运行结果:

      

      JavaScript的逻辑 OR 运算也是简便运算,对于逻辑 OR 运算符来说,如果第一个运算数值为 true,就不再计算第二个运算数如果某个运算数不是 Boolean 值,逻辑 OR 运算并不一定返回 Boolean 值,逻辑||的运算规则如下:

    1. 如果一个运算数是对象,另一个是 Boolean 值,返回该对象。
    2. 如果两个运算数都是对象,返回第一个对象。
    3. 如果某个运算数是 null,返回 null。
    4. 如果某个运算数是 NaN,返回 NaN。
    5. 如果某个运算数是 undefined,发生错误。

      对于这些运算规则,没有必要死记硬背,因为在JavaScript中,可以使用逻辑Not运算符来判断JavaScript变量的Boolean值,判断的方式就是"!!变量名",例如:

     使用逻辑Not运算符来判断JavaScript变量的Boolean值

    复制代码
     1 <script type="text/javascript">
     2      var bFalse = false;//运算数是bool类型的数
     3      var sRed = "red";//运算数是字符串
     4      var iZero = 0;//运算数是0
     5      var iThreeFourFive = 345;//运算数是 0 以外的任何数字
     6      var oObject = new Object();//对象
     7      var oNull=null;//运算数是null
     8      var oUndefined;//运算数是undifined
     9      var oNaN=parseInt("abc");//使用parseInt方法把尝试字符串abc转换成整数,因为abc不是数字,因此是转不了的,所以返回的结果就是NaN
    10     /*
    11     判断JavaScript 变量的 Boolean 值时,也可以使用逻辑 NOT 运算符。这样做需要在一行代码中使用两个 NOT 运算符。
    12     无论运算数是什么类型,第一个 NOT 运算符返回 Boolean 值。第二个 NOT 将对该 Boolean 值取反,从而给出变量真正的 Boolean 值。
    13     */
    14     document.write("<PRE>");
    15     document.writeln("布尔数false 的逻辑值是 " + (!!bFalse));
    16     document.writeln("字符串sRed 的逻辑值是 " + (!!sRed));
    17     document.writeln("数字0 的逻辑值是 " + (!!iZero));
    18     document.writeln("数字345 的逻辑值是 " + (!!iThreeFourFive));
    19     document.writeln("对象Object 的逻辑值是 " + (!!oObject));
    20     document.writeln("NaN的逻辑值是 :" + (!!oNaN));
    21     document.writeln("null 的逻辑值是 " + (!!oNull));
    22     document.writeln("undefined 的逻辑值是 " + (!!oUndefined));
    23     document.write("</PRE>");
    24   </script>
    复制代码

    判断结果:

      

    逻辑||运算符测试脚本:

    复制代码
     1  <script type="text/javascript">
     2   document.write("<PRE>");
     3   /*JavaScript中的||将返回第一个不为false的那个值(对象亦可)或者最后一个值(如果全部都为false的话)*/
     4     var a=2;
     5     var b=90;
     6     var c=a||b;//在JavaScript中,非0的数字就代表true,0就代表false
     7     document.writeln("a=2,b=90,c=a||b的结果是:"+c);//结果为2,返回第一个不为false的那个值,所以值是2
     8 
     9     var bFalse1=false;
    10     var bFalse2=false;
    11     var num=0;//0代表false
    12     var result=bFalse1||bFalse2||num;
    13     document.writeln("bFalse1=false,bFalse2=false,num=0,result=bFalse1||bFalse2||num的结果是:"+num);//如果全部都为false的话,返回最后一个值,因此结果是0
    14 
    15     /*如果一个运算数是对象,另一个是 Boolean 值,返回该对象。*/
    16     var obj = new Object();
    17     var bTrue=true;
    18     var bFalse=false;
    19     document.writeln("obj||bTrue的结果是:"+(obj||bTrue));//返回object
    20     document.writeln("bTrue||obj的结果是:"+(bTrue||obj));//返回true,逻辑 OR 运算也是简便运算。对于逻辑 OR 运算符来说,如果第一个运算数值为 true,就不再计算第二个运算数。
    21     document.writeln("obj||bFalse的结果是:"+(obj||bFalse));//返回object
    22     document.writeln("bFalse||obj的结果是:"+(bFalse||obj));//返回object
    23 
    24     /*如果两个运算数都是对象,返回第一个对象*/
    25     var obj1 = new Object();
    26     var obj2 = new Object();
    27     document.writeln("obj1==(obj1||obj2)的结果是:"+(obj1==(obj1||obj2)));//结果为true
    28     document.writeln("obj2==(obj1||obj2)的结果是:"+(obj2==(obj1||obj2)));//结果为false
    29 
    30     /*如果某个运算数是 null,返回 null。*/
    31     var c=1;
    32     var d=null;
    33     document.writeln("d=null,null的布尔值是;"+(!!d));
    34     document.writeln("c=1,d=null,c||d的结果是:"+(c||d));
    35     document.writeln("c=1,d=null,d||c的结果是:"+(d||c));
    36     
    37     var o=new Object();
    38     document.writeln("o是一个对象,d=null,o||d的结果是:"+(o||d));//返回object
    39     document.writeln("o是一个对象,d=null,d||o的结果是:"+(d||o));//返回object
    40     
    41     var zero=0;
    42     document.writeln("zero=0,d=null,zero||d的结果是:"+(zero||d));//返回null
    43     document.writeln("zero=0,d=null,d||zero的结果是:"+(d||zero));//返回0
    44 
    45     var bTrue = true;
    46     var bResult = (bTrue || bUnknown);
    47     /*变量 bUnknown 是未定义的。不过,由于变量 bTrue 的值为 true,bUnknown 不会被计算,因此输出的是 "true"。*/
    48     document.writeln("bUnknown是未定义的一个变量,bResult = (bTrue || bUnknown)的结果是:"+bResult);//输出 "true"
    49 
    50      bFalse = false;
    51      bResult = (bFalse || bUnknown);    //发生错误
    52     document.writeln(bResult);            //不会执行这一行
    53     document.write("</PRE>");
    复制代码

    运行结果:

     
     
  • 相关阅读:
    Session的使用与Session的生命周期
    Long-Polling, Websockets, SSE(Server-Sent Event), WebRTC 之间的区别与使用
    十九、详述 IntelliJ IDEA 之 添加 jar 包
    十八、IntelliJ IDEA 常用快捷键 之 Windows 版
    十七、IntelliJ IDEA 中的 Maven 项目初体验及搭建 Spring MVC 框架
    十六、详述 IntelliJ IDEA 创建 Maven 项目及设置 java 源目录的方法
    十五、详述 IntelliJ IDEA 插件的安装及使用方法
    十四、详述 IntelliJ IDEA 提交代码前的 Code Analysis 机制
    十三、IntelliJ IDEA 中的版本控制介绍(下)
    十二、IntelliJ IDEA 中的版本控制介绍(中)
  • 原文地址:https://www.cnblogs.com/phpcqy/p/14309543.html
Copyright © 2011-2022 走看看