为什么1.2 ==如果布尔值(1.2)实际为真,则返回false?

时间:2016-04-23 09:53:46

标签: javascript boolean type-conversion equals-operator

了解=====,我无法通过对此的解释来说服自己。

我使用浮点数并使用== Boolean执行true。它返回false。但是当我明确地将浮点数转换为布尔值时,它返回true。不应该= =实际上先将1.2转换为布尔值,然后将其与另一侧的真值进行比较吗?

> Boolean(1.2)
true
> 1.2 == true
false

另一方面,"整数"将按照我的预期行事。

> 1 == true
true

1 个答案:

答案 0 :(得分:4)

如上所述,1.2不会先转换为布尔值。

根据abstract equality comparison algorithm,将执行以下步骤

  • 1.2 == true
  • 1.2 == toNumber(true)(在算法中,步骤7)
  • 1.2 == 1(在算法中,步骤1)
  • false