"true"==true的結果為false,為什么?


== 判斷相等的規則,當兩邊類型不一致時
在js高級程序設計中(第三版51頁)是這么說的: 在轉換不同的數據類型時,相等或者不相等應遵循一下幾條規則:
1. 如果有一個操作數是布爾值,則在比較相等之前將其轉換為數值————false轉換為0,true轉換為1; 2. 如果一個操作數是字符串,另一個操作符是數值,則在比較相等之前先講字符串轉換為數值; 3. 如果一個操作數是對象,另一個操作數不是,則調用對象的valueOf()方法,用得到的基本類型值按照前面的規則進行比較。 回到這個題目中,根據規則1,先將布爾值轉換為數值1,變換為字符串和數值的比較。再根據規則2,將字符串轉為數值,NaN。顯然不等。

=== 判斷嚴格相等,必須是類型先一致,否則都不等

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM