小白学前端——&&和||逻辑短路问题

这个&& (且)和||(或)应该也是初学者容易弄混,不是很好理解的地方。下面先来说一下他们各自的解释。

&&(且):&&的意思是假如有a,b两个条件在&&的两边,即a&&b,那么必须a,b条件都满足,这整个条件才成立,否则不成立。

||(或):||的意识是当a||b时,只要满足a或者b,这整个条件就成立,否则不成立。

这个还比较好理解,但是&&和||还有一个问题是什么时候会引发逻辑短路。(我简单的理解就是什么时候不会执行后面的条件,而什么时候又会执行后面的条件)

用下面的例子说明:
在这里插入图片描述
首先:

&&是两个条件都满足,那么这整个条件成立,所以如果前面的条件都不满足的话,那证明是一定不会成立了,后面的条件根本没有必要运行了,这个时候会引发逻辑短路。

||是只要其中一个条件满足,那么这整个条件成立,所以如果第一个条件满足了,也就不用去执行后面的条件了,这个时候也会引发逻辑短路。

这道题中,因为这个a没有声明,所以如果执行到这步的时候,肯定是会报错的,错误:a is not defined。

①num=8;

num>5 && console.log(a)

会报错,因为8>5,判断了第一个条件是成立的,之后就会去执行第二个条件,执行到console.log(a);发现a没有声明,就会报错。

②num=8;

num<5 && console.log(a);

不会报错,因为第一个条件8<5就不满足了,那么整个条件肯定是不满足了,这个时候就会引发逻辑短路,也就不会执行到console.log(a);那么也不会报错了。

③num=8;

num>5 || console.log(a);

这个也不会报错,因为8>5的条件已经成立了,在||中只要满足其中一个整个条件就成立,那么也不用执行到后面了,这个也是引发了逻辑短路。

④num=8;

num<5 || console.log(a);

这个会报错,因为8<5显然是不成立的,所过会去执行后面的条件,只要后面的条件成立,那么整个条件就是成立的,运行到console.log(a),因为没有声明a ,所以会报错。

如果有说的不正确的地方,欢迎指正,谢谢!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值