美文网首页Java 学习
js中逻辑运算符&&、||同时存在的思考

js中逻辑运算符&&、||同时存在的思考

作者: 思我恋 | 来源:发表于2019-01-09 11:30 被阅读0次

在掘金上碰到一个有趣的问题 true || false && false这个结果是啥
答案是true

why?
最初的结论是:&&的逻辑运算符的优先级高于||
然而最后结论是短路运算的结果。

image.png

短路运算

&&表达式1 && 表达式2

表达式1 为true时,返回表达式2
表达式1 为false时,返回表达式1,且不会执行表达式2

||表达式1 || 表达式2

表达式1 为true时,返回表达式1,且不会执行表达式2
表达式1 为false时,返回表达式2

又去查了一堆资料,又碰到个奇怪的问题。

true || alert(2) && false        // 结果为true,alert(2)并没有执行

如果按优先级来不应该会执行alert(2)吗?

再来个问题:

false && false || alert(1)      // 结果弹窗1,执行了alert(1)

如果按从左往右的顺序执行,短路运算生效,应该不会执行alert(1)

经过与一位Java同事的讨论,最后得出如下结论:
遇到||运算符,先去左边的表达式得出结果,如果结果为true,则不会去执行右边的表达式,则短路运算生效;如果结果为false,则去执行右边的表达式,再去根据两边的结果去执行||运算符

当同时存在多个||时,从左到右,一一执行上述规则。

相关文章

  • js中逻辑运算符&&、||同时存在的思考

    在掘金上碰到一个有趣的问题 true || false && false这个结果是啥答案是true why?最初的...

  • js中的 || 与 && 运算符详解

    这篇文章主要介绍了js中的 || 与 && 运算符详解,需要的朋友可以参考下 一 js中逻辑运算符在开发中可以算是...

  • JavaScript 02 (运算符和选择结构)

    js的关系运算符,js的逻辑运算符,js的赋值运算符,js的运算符的优先级问题,js的自增和自减,js的选择结构 ...

  • JavaScript逻辑运算符

    逻辑运算符 前面我们学习了JS的算术运算符和比较运算符,本篇文章我们继续学习JS的逻辑运算符,在编程语言里,比较和...

  • js 逻辑运算符 运算符

    js逻辑运算符 1、JS中的||符号:运算方法:只要“||”前面为false,不管“||”后面是true还是fal...

  • js 逻辑运算符 运算符

    js逻辑运算符 1、JS中的||符号: 运算方法:只要“||”前面为false,不管“||”后面是true还是fa...

  • js 逻辑运算符 运算符

    js逻辑运算符 1、JS中的||符号: 运算方法:只要“||”前面为false,不管“||”后面是true还是fa...

  • 逻辑运算符、与或运算、赋值运算、关系运算、

    除了0和NaN其余都是true(真) 逻辑运算符: JS中为我们提供了三种逻辑运算符 ! 非 - !可以用来对一个...

  • Functional

    重载了几个运算符,了解运算符重载的概念,同时了解在JSON 处理中的一些逻辑:

  • 2018-11-29

    11js关系运算符 11js关系运算符 /*关系运算符存在的意义:1、默认情况下,...

网友评论

    本文标题:js中逻辑运算符&&、||同时存在的思考

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