逻辑与&& 和 逻辑或|| 短路原则

今天就来详细说说这两个逻辑符号的主要两种用法

  • 普通用法   两边表达式做逻辑判断返回Boolean

.逻辑或 ||

console.log(10 > 5 || 5 < 10) //返回 true

总结:两边表达式只要有一边返回true,那么最终的结果就会返回true

用一句话说就是:一真即为真

.逻辑于 &&

consloe.log(10 > 5 && 5 < 10) // 返回false
consloe.log(10 > 5 && 8 > 5) // 返回true

总结:

两边表达式只要有一边返回false,那么最终的结果就会返回false

只有两边表达式都是true的时候,才会返回true

  • 高级用法 (短路原则用法)   此用法在于执行哪一边的表达式

一:&&的短路特性
真假:要使(表达式1)&&(表达式2) 输出结果为真,就要同时满足表达式1和表达式2都要为真。&&的短路特性意思为如果在运算过程中表达式1结果为假,这时输出结果一定为假,所以表达式2不在进行运算。因为结果不可能为真,这就是&&的短路特性。

执行:如果左边表达式为真,那么它就会执行右边表达式   -----左 && 右

二:||的短路特性
真假:要使(表达式1)||(表达式2) 输出结果为真,只需要满足表达式1和表达式2有一个为真即可。||的短路特性意思为如果在运算过程中表达式1结果为真,这时输出结果一定为真,所以表达式2不在进行运算。因为结果不可能为假,这就是||的短路特性。如果表达式1为假才进行表达式2的运算。

执行:如果左边表达式为假,那么它就会执行右边表达式  ------左 || 右

在js逻辑运算中,0、” “、null、false、undefined、NaN都会判为false,其他都为true

(
    function() {
      //验证短路特性
      var i = 0;
      var j = 0;
      
      //验证&&的短路特性
      if ( i+1 && j+1)
      {
        console.log('在if中执行');
        console.log("验证&&的短路特性:i=%d  j=%d \n", i, j);
      }
      else
      {
        console.log('在else中执行');
      }
    
      //验证||的短路特性
      if (i+1 || j)
      {
        console.log('逻辑或');
        console.log("验证||的短路特性:i=%d  j=%d \n", i, j);
      }  
      }
    ()
  )

 

 解释为什么打印出来i,j都是0:

这是因为var i,j的指向没有改变,if中只是做了判断,并没有给i赋值,所以ij变量的值没有改变还是原先的值(i = i + 1 要这样才会改变 它们的值)。我这里主要验证短路即表达式是否会执行。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值