在我找到的所有JavaScript运算符优先级图表中(例如此链接和此链接),逻辑AND (&&
) 的优先级略高于逻辑OR (||
)。
我似乎无法找出一个表达式,使得结果与它们具有相同优先级时不同。 我想如果并没有区别,它们就会被列为具有相同的优先级。
例如:
0 || 2 && 0 || 3
这里的值是3
,无论我如何分割,它始终是3
:
(0 || 2) && 0 || 3
0 || (2 && 0) || 3
(0 || 2 && 0) || 3
0 || 2 && (0 || 3)
0 || (2 && 0 || 3)
如果我将第一个
0
改为其他值(例如 4
),结果总是 4
,因为第一个 ||
甚至不会看右边。如果我在最后一个 ||
中交换 0
和 3
,结果仍然是 3
。我尝试的最接近的方法是:
0 || false && "" || NaN
...这是 NaN
,而
0 || false && ("" || NaN)
...是false
,但我认为这只是由于从左到右的语义解释而不是&&
优先级更高。
我可能只是忽略了它,对于哪个表达式,&&
比||
优先级高很重要?
true || false && false
- Ôrel