了解==
和===
,我无法通过对此的解释来说服自己。
我使用浮点数并使用==
Boolean
执行true
。它返回false
。但是当我明确地将浮点数转换为布尔值时,它返回true。不应该= =实际上先将1.2转换为布尔值,然后将其与另一侧的真值进行比较吗?
> Boolean(1.2)
true
> 1.2 == true
false
另一方面,"整数"将按照我的预期行事。
> 1 == true
true
答案 0 :(得分:4)
如上所述,1.2
不会先转换为布尔值。
根据abstract equality comparison algorithm,将执行以下步骤
1.2 == true
1.2 == toNumber(true)
(在算法中,步骤7)1.2 == 1
(在算法中,步骤1)false