为什么括号不会在JavaScript中更改==和===的运算符优先级?

Moh*_*sen 3 javascript

我有点困惑!为什么paranthesis不会影响这些陈述中的优先级?

true === '0' == 0 // returns true
(true === '0') == 0 // returns true again!
Run Code Online (Sandbox Code Playgroud)

Jas*_*n S 10

因为true === '0'评估false,并且false == 0是真的.(因为false0和0都是"非真实的")

请记住,===比较严格相等和==测试是否与转换相等.


Sim*_*ris 6

因为(true === '0')是假的,false == 0在两种情况下都是如此.

换一种说法:

(true === '0') == 0

解决了

false == 0

这是真的.


zzz*_*Bov 6

并不是优先级不同,而是两个分组都评估为真:

true === '0'false
false == 0true

'0' == 0true
true === truetrue

您可能想要查看JS真值表