簡體   English   中英

如果Boolean(1.2)實際上為true,為什么1.2 == true返回false?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM