zoukankan      html  css  js  c++  java
  • JS中的逻辑或||逻辑与&&

     

     

    && (逻辑与)

    这里主要是一个“&&”运算,首先要搞懂这个,看一个简单的例子:



    1

    var
     
    a = 1 && 2 && 3;
    //3


    2

    var
     
    b = 0 && 1 && 2;
    //0


    3

    var
     
    c = 1 && 0  && 2;
    //0


    4

    alert(a),alert(b),alert(c);

    嘿嘿,写法很奇怪,运行的结果是3,0,0。一般我们在if语句中经常用到。“&&” (逻辑与) 运算和“||”运算真好相反,“&&” 运算遇到false就返回。
    例如: a && b ,如果 a 为true,直接返回b,而不管b为true或者false 。如果 a 为false 那么直接返回a,上面例子中第一个var a = 1 && 2 && 3;因为1 && 2,1为真,返回2;2&&3, 2为真,返回3 。
    搞懂了“&&” 运算,再来看最上的面的YUI compressor压缩的js代码,翻译一下:



    01

    if
    (userNum){


    02

    ind += index;


    03

    if
     
    (ind >= userNum) {


    04

    ind -= userNum


    05

    }


    06

    if
    (ind < 0){


    07

    if
    (ind === -2){


    08

    ind = -1;


    09

    }


    10

    ind += userNum;


    11

    }


    12

    selLi.removeClass(
    "on"
    );


    13

    $(selLi[ind]).addClass(
    "on"
    );


    14

    }

    ||(逻辑或)

    再来看看“||”(逻辑或)运算,看例子:



    1

    var
     
    a = 0 || 1 || 2;
    //1


    2

    var
     
    b = 1 || 0 || 3;
    //1


    3

    alert(a),alert(b);

    “||”运算遇到true就返回。例如:a || b ,如果 a 为false,直接返回b,而不管b为true或者false 。如果 a 为true,直接返回a,而不会继续往下执行。

    && (逻辑与) 和||(逻辑或)混合使用的时候要注意他们的优先级:

    && (逻辑与) 优先级高于||(逻辑或)
    return a && b || c ,
    根据a来判断返回值,a 是 false 则肯定返回 c;如果 b , c 都是 true ,那么我们就可以根据 a 来决定b 还是 c ,如果 a 是 false 则返回 c,如果a是true 则返回 b。
    return a || b && c
    根据优先级相当于先算 b && c ,然后和a 相 或;如果a是true,则返回a,不论是b或c,如果a是false,则如果b是false,返回b,如果b是true,返回c;



    1

    var
     
    a = 3  &&  0 || 2;  
    //2


    2
     


    3

    var
     
    b = 3 || 0  &&  2; 
    // 3


    4
     


    5

    var
     
    c= 0 || 2 && 3; 
    // 3


    6

    alert(a),alert(b),alert(c);

  • 相关阅读:
    linux的redis的安装和使用
    在linux上安装Mysql和使用
    linux的python3的安装
    linux的优化和命令
    LeetCode 542. 01 Matrix
    Qt keyPressEvent
    QOpenGLTexture 两个纹理叠加
    Qt5.6.0+OpenGL 纹理贴图首战告捷
    更改Qt Application为 Qt Console Application
    Learning part-based templates from large collections of 3D shapse CorrsTmplt Kim 代码调试
  • 原文地址:https://www.cnblogs.com/zifeiyu/p/3442416.html
Copyright © 2011-2022 走看看