逻辑运算符

与运算(&&)

  • 运行机制

    1. 本质,当对两个布尔值进行与运算(&&)时,如果有一个值为false,返回false。两个都为true,返回true。

      true && false //false
      
    2. 如果并且

      用表达式替换布尔值。常用于判断语句

      var a=1,b=2
      a==1 && b==3 //false  两个判断语句
      
    3. 如果那么

      可以对有类型数据进行运算,返回值不是布尔值的表达式。

      前面为true后面运行,如果前面为false后面不运行。

      var a=1,b=2
      a==1 && b=3 // 短路写法,前面判断为true才执行后面
      
  • 返回值

    运行到那个表达式,返回值就是对应表达式的返回值。前面为true才执行后面。返回值不一定是布尔类型。

或运算(||)

  • 运行机制

    1. 当对两个布尔值进行与运算(||)时,只要有一个为true就返回true

      true || false
      a&&b||c
      
    2. 或者

      //表达式返回值为布尔值就行运算
      var a=1,b=2
      a==2 || b==2 //
      
    3. 如果不那么

      通常用于赋值

      x=a || b //短路写法,前面a不存在用后面的b
      
  • 返回值

    运行到那个表达式,就返回那个表达式的值。只要用于赋值,前面不存在赋值后面的

a && b || c
//如果a那么就执行b否则执行c
//a通常是个判断返回 true false
//bc通常是一个执行语句
//a满足运行b 
//a不满足运行c

//三目运算符
a?b:c

逻辑运算符优先级:

!> && >||> a?b:c

!(x&&Y)
!x||y
x=a?b:c?d!:e?f:g //三目运算符  
x=a?b:(c?d:(e?f:g)) // 都是三目操作符从右向左