[英]Why 1.2 == true returns false if Boolean(1.2) is actually true?
仔細研究==
和===
,我真的無法通過對此的解釋來說服自己。
我采用浮點數,並使用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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.