复习==
和===
,我真的无法用对此的解释来说服自己。
我取一个浮点数,用Boolean
true
做一个==
。它返回false
.但是当我显式地将浮点数转换为布尔值时,它返回 true。== 实际上不应该首先将 1.2 转换为布尔值,然后将其与另一边的 true 进行比较吗?
> Boolean(1.2)
true
> 1.2 == true
false
另一方面,"整数"的行为将符合我的预期。
> 1 == true
true
如上所述1.2
不会先转换为布尔值。
根据抽象相等比较算法,将执行以下步骤
-
1.2 == true
-
1.2 == toNumber(true)
(在算法中,步骤7) -
1.2 == 1
(在算法中,步骤1) -
false