JavaScript - 为什么+!{} [0] == 1?

Ric*_*ton 4 javascript type-conversion coercion

我在网上找到了一个有趣的JavaScript问题.这是+!{}[0]平等的吗?

答案真的让我感到惊讶,原来是1.

现在我试图理解为什么这种语法会导致这种情况.

这就是我试图打破它的原因

!{} 回报 false

false[0] 回报 undefined

+false[0] 回报 NaN

所以我无法理解为什么上述表达会返回1.任何理论?

bas*_*kum 9

您具有错误的运算符(MDN)的优先级.它是:

{}[0] 回报 undefined

!undefined 回报 true

+true 回报 1