美文网首页
小白学前端——&&和||逻辑短路问题

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

作者: 一个萌面人 | 来源:发表于2019-10-20 11:38 被阅读0次

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

&&(且):&&的意思是假如有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 ,所以会报错。

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

相关文章

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

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

  • Java--逻辑运算符

      逻辑运算的操作数和运算结果都是boolean值。 逻辑运算符   短路与和短路或采用短路的方式。从左到右计算,...

  • 逻辑运算符

    & — 逻辑与 | — 逻辑或 ! — 逻辑非 && — 短路与 || — ...

  • && || 逻辑短路

    " ", 0, undefined, null, NaN, false这6个是为false var a = fal...

  • 【003期】JavaSE面试题(三):JavaSE语法(1)

    一、& 和 && 的区别? &运算符有两种用法: 按位与 逻辑与 &&运算符是短路与运算。逻辑与跟短路与的差别是很...

  • go基础(二) for循环

    一.逻辑运算符(唯一) &&,短路与||,短路或!,非逻辑与&&运算优先级高于逻辑或|| 二.for循环嵌套 1....

  • Chrome调试技巧

    调试技巧,对于前端小白来说,是必不可少的技能。掌握各种调试技巧,可以快速定位问题、帮助分析逻辑错误等。本文介绍一些...

  • &&,||

    长路和短路 长路将逻辑运算符两侧运算执行完后执行逻辑运算;短路先执行逻辑运算符左侧部分,符合,就不再执行右侧部分。...

  • 逻辑运算符

    在java的逻辑运算符中,有这么四类:&&(短路与),&(与),|(或),||(短路或)。 &&和&都是表示与,区...

  • 小白怎么入门前端 Web前端都学些什么

    小白怎么入门前端?Web前端都学些什么?对于刚刚准备想进入Web前端行业的人来说,可能只知道Web前端开发前景好,...

网友评论

      本文标题:小白学前端——&&和||逻辑短路问题

      本文链接:https://www.haomeiwen.com/subject/acbomctx.html