【JavaScript】 逻辑中断(二)

411 阅读2分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

📝【JavaScript】学习养成记,【程序员必备小知识】

📔 今日小知识——JavaScript逻辑中断(二)  

接上一篇JS逻辑中断(一)

本篇介绍逻辑中断(短路运算)

1. 逻辑中断或

  • 如果表达式1 结果为真,则返回表达式1
  • 如果表达式1 结果为假,则返回表达式2

举例1

console.log(387 || 618)

根据上面的规则特性,387||618 结果应该是387,运行一下看看结果如何,不出意外,控制台打印是387 

哈哈,果然是387,和预期的一样,如果表达式1 结果为真,则返回表达式1

举例2

复制下上面的,再后面加上其他的表达式看看结果如何呢??? 不出意外肯定还是387

console.log(387 || 618 || 123 + 456 || 110)

果然还是和预期的结果是一致的,如果表达式1 结果为真,则返回表达式1,所以无论后面有多少表达式,都是中断的,不会去执行的

举例3

那如果上面的举例表达式1是零呢,结果又会是什么呢???

console.log(0 || 618 || 123 + 456 || 110)

表达式 0 || 618 返回的结果是618(如果表达式1 结果为假,则返回表达式2),然后 618 || 123 + 456 || 110618是为真的,就返回表达式1,所以最后的结果就是618

举例4 

那么我们再来看一个例子,如下代码:

 var num = 0
 console.log(123 || num++)
 console.log(num)

分析:由“如果表达式1 结果为真,则返回表达式1”,那么这句代码console.log(123 || num++) 肯定是结果为0 ,那么num的输出结果为多少呢?是 1 还是 0 呢???

在控制台,我们可以看到打印的结果是0,因为逻辑中断了,后面的就不执行了,所以num没有自增,还是初始的值0

所以逻辑中断重不重要啊???很显然,逻辑中断是非常重要的知识点,学习JS的就必须掌握,这在很多前端面试中都会经常考的,那么你学会了吗?

2. 总结

在上一篇已经介绍了,逻辑中断里面的与预算,规则特点是

  1. 如果第一个表达式的值为真,则返回表达式2
  2. 如果第一个表达式的值为假,则返回表达式1 

或运算的规则特点是 

  1. 如果表达式1 结果为真,则返回表达式1
  2. 如果表达式1 结果为假,则返回表达式2

从以上可以看出,逻辑中断的与和或,刚好是相反的。如果第一个表达式的值为真,在与运算里面 返回表达式2,在或运算里面返回表达式1

3. 写在后面

关注我,更多内容持续输出

🌹 喜欢就点个赞吧👍🌹

🌹 觉得有收获的,可以来一波 收藏+关注,以免你下次找不到我😁🌹

🌹欢迎大家留言交流,批评指正,转发请注明出处,谢谢支持!🌹