zoukankan      html  css  js  c++  java
  • javascript高程笔记:逻辑与和逻辑或

    逻辑与和或

    逻辑与

    当 && 前后两个操作数都是布尔值,无可厚非,同时为true才为true。与其他强类型语言不同的是,javascript逻辑与前后的操作数可以应用于任何类型。

    而且,在有一个操作数不是布尔值的情况下,逻辑与操作就不一定返回布尔值。

    如果第一个操作数是对象,则返回第二个操作数

    2 //返回 字符串:"this is the secondObject"
     3 function LogicAnd1(){
     4                 
     5     var firstObject ={
     6         valueOf:function(){
     7             return 1;
     8         }
     9     };
    10                 
    11     var secondObject ="this is the secondObject";
    12                 
    13     return firstObject && secondObject;
    14 }

    如果第二个操作数是对象,则只有在第一个操作数的求值为true的情况下才返回该对象

     1 //firstObject 为true 返回该对象
     2 //firstObject 为false 返回false
     3 function LogicAnd2(){
     4         var secondObject ={
     5                  valueOf:function(){
     6             return 1;
     7             }
     8         };
     9                 
    10         var firstObject =false;
    11                 
    12         return firstObject && secondObject;
    13 }

    如果两个都是对象{null 也是object,此处为非null对象},则返回第二个

    1 返回第二个
    2 function LogicAnd3(){
    3         var firstObject ={myName:"first"};
    4         var secondObject ={myName:"second"};
    5 
    6         return firstObject && secondObject;
    7 }

    任意一个为null,NaN,undefined  结果为null,NaN,undefined

     1 //任意一个为null 结果为null
     2 function LogicAnd4(){
     3         var firstObject =null;
     4         var secondObject ={myName:"second"};
     5 
     6         return firstObject && secondObject;
     7 }
     8             
     9 //任意一个为Nan 结果为Nan
    10     function LogicAnd5(){
    11         var firstObject =NaN;
    12         var secondObject ={myName:"second"};
    13 
    14         return firstObject && secondObject;
    15 }
    16             
    17 //任意一个为undefined 结果为undefined
    18     function LogicAnd6(){
    19         var firstObject =undefined;
    20         var secondObject ={myName:"second"};
    21 
    22         return firstObject && secondObject;
    23 }

    逻辑或

    逻辑或同样可以应用在任意两个类型当中,其中:

    第一个为对象,则返回第一个对象

     1 function LogicOr1(){
     2         var firstObject ={
     3             valueOf:function(){
     4                 return 1;
     5             }
     6         };
     7                 
     8         var secondObject ="this is the secondObject";
     9                 
    10             return firstObject || secondObject;
    11 
    12 }

    如果第二个操作数是对象,则只有在第一个操作数的求值为false的情况下才返回该对象

     1 //firstObject 求值为false 返回该对象
     2 //firstObject 求值为true 返回firstObject
     3 function LogicOr2(){
     4     var secondObject ={
     5           valueOf:function(){
     6             return 1;
     7         }
     8     };
     9                 
    10     var firstObject =1000;
    11                 
    12     return firstObject || secondObject;
    13 
    14 }
    15             

    如果两个都是对象{null 也是object,此处为非null对象},则返回第一个

    1 function LogicOr3(){
    2     var firstObject ={myName:"first"};
    3     var secondObject ={myName:"second"};
    4     //返回第一个
    5     return firstObject || secondObject;
    6 }

    两个都为null,undefined,NaN 则结果都为以上上个值

     1 //两个为null 结果为null
     2 function LogicOr4(){
     3         var firstObject =null;
     4         var secondObject =null;
     5 
     6         return firstObject || secondObject;
     7 }
     8             
     9 //两个为Nan 结果为Nan
    10 function LogicOr5(){
    11         var firstObject =NaN;
    12         var secondObject =NaN;
    13 
    14         return firstObject || secondObject;
    15 }
    16             
    17 //两个为undefined 结果为undefined
    18 function LogicOr6(){
    19         var firstObject =undefined;
    20         var secondObject =undefined;
    21 
    22         return firstObject || secondObject;
    23 }
  • 相关阅读:
    JCL: What is EXCP
    百分比布局的使用
    使用TabLayout快速实现一个导航栏
    彻底理解android中的内部存储与外部存储
    Eclipse的LogCat总是自动清空怎么办?
    怎么给Unity写一个原生的插件
    一句话、一张图记住Activity和Fragment之间错综复杂的生命周期关系
    2015年工作中遇到的问题:131-140(有图才有真相)
    2015年工作中遇到的问题:131-140(有图才有真相)
    雷观(二十四):谈谈我对国家事务“二胎”和“教育”的一些看法
  • 原文地址:https://www.cnblogs.com/blogsfuh/p/6950240.html
Copyright © 2011-2022 走看看