当前位置: 首页 > 知识库问答 >
问题:

有人能解释一下为什么“运算符优先”适用于javaScript中的“”、“&&”这样的逻辑运算符吗

汪安然
2023-03-14

有人能解释一下为什么操作符优先级适用于像JavaScript中的&这样的逻辑操作符吗?这在一个操作中意味着什么:

false&&false首先计算,因为在JavaScript中,&运算符的优先级高于运算符。根据我如何知道false&&false不会被JavaScript引擎计算,因为在运算符之前有一个true文字,而当某个东西在运算符之前是true时,运算符之后的东西不会被计算这在JavaScript中称为“逻辑运算符短路”另一个示例是:

真警报()

即使函数调用的优先级高于运算符,也不会发生函数调用,另一个示例是

真x=7

如果在JavaScript中逻辑运算符的短路是真的,那么上面的代码就不能给出错误,因为没有计算x=7,因为在运算符之前有一个true文字。

共有1个答案

董和风
2023-03-14

运算符优先级只是决定分组,而不是实际的计算顺序:https://stackoverflow.com/A/46506130

>

  • true false&&false变为true(false&&false),但仍然从左到右求值。

    true alert()的计算值为true(alert())而不是true alert()

    真x=7的计算值为(真x)=7并导致错误,而不是真(x=7)

  •  类似资料:
    • 为什么JVM不遵守它自己的规则。以下面的例子为例。 结果是: 而实际结果应该是,根据&运算符是在运算符之前求值的事实: 对于为什么没有正确实现这一点,有一些解释会很好。即使在第二部分周围添加括号,也没有使用正确的优先级。

    • 本文向大家介绍什么是JavaScript中的逻辑运算符?,包括了什么是JavaScript中的逻辑运算符?的使用技巧和注意事项,需要的朋友参考一下 JavaScript支持以下逻辑运算符。假设变量A持有10,变量B持有20,那么, 序号 运算符和说明 1 &&(逻辑与) 如果两个操作数都不为零,则条件变为true。 例如:(A && B)是真的。 2 | | (逻辑或) 如果两个操作数中的任何一个

    • 逻辑运算符通常用于布尔型(逻辑)值。这种情况下,它们返回一个布尔值。然而,&& 和 || 运算符会返回一个指定操作数的值,因此,这些运算符也用于非布尔值。这时,它们也就会返回一个非布尔型值。—— MDN 逻辑运算符用于逻辑运算。如变量 num 要大于2同时也要小于 7,这里的同时就是一种逻辑运算。 JavaScript 中的逻辑运算有三种: && 与 (并且) || 或 (或者) ! 非 (取反)

    • 本文向大家介绍javascript运算符——逻辑运算符全面解析,包括了javascript运算符——逻辑运算符全面解析的使用技巧和注意事项,需要的朋友参考一下 前面的话 逻辑运算符对操作数进行布尔运算,经常和关系运算符一样配合使用。逻辑运算符将多个关系表达式组合起来组成一个更复杂的表达式。逻辑运算符分为逻辑非'!'、逻辑与'&&'、逻辑或'||'3种,本文将介绍这三种逻辑运算符 逻辑非 逻辑非操作

    • 本文向大家介绍巧用Javascript的逻辑运算符,包括了巧用Javascript的逻辑运算符的使用技巧和注意事项,需要的朋友参考一下 上面例子:如果是火狐浏览器执行if里面的语句,即使用e这个参数,来引用“事件对象”。      如果是IE浏览器则执行else里面的语句,即使用event来引用“事件对象”。 这是为了兼容两个浏览器而使用的if判断方法,来使用事件对象。 上面例子:通过使用“或”这

    • 问题内容: 我似乎无法与三元运算符结合使用此代码的第一部分(+ =)。 我认为这段代码的工作方式如下: 但这是不正确的,因为这会导致控制台出现错误。 所以我的问题是我应该如何正确插入此代码? 问题答案: h.className = h.className + (h.className ? ‘ error’ : ‘error’) 您希望操作员为之工作,最好对此有所具体。 当然,不应有任何伤害 ,但这