仔细阅读==
和===
,我真的无法以对此的解释来说服自己。
我取一个浮点数,并用做==
一个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
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句