本章詳細介紹了javascript中的相等符號以及嚴格相等符號,需要的朋友可以參考下。
Javascript 有兩種方法來判斷兩種值是否相等。
相等符號
相等符號由兩個等號組成: ==
Javascript 是弱型別語言。這意味著相等符號為了比較兩個值將會強制轉換型別。
"" == "0" // false 0 == "" // true 0 == "0" // true false == "false" // false false == "0" // true false == undefined // false false == null // false null == undefined // true " \t\r\n" == 0 // true
上面的程式碼顯示了型別轉換的結果,因此我們知道使用相等符號 == 是個不好的程式設計習慣。由於 Javascript 中複雜的型別轉換機制,將會使得由此產生的錯誤變得難以追蹤。
此外,類型的強制轉換會對效能也造成一定的影響,例如,當一個字串與數字進行比較時,會被強制轉換為數字。
嚴格相等符號
嚴格相等符號由三個等號組成: ===
它跟相等符號的操作相似,但是嚴格相等符號由三個等號組成: ===
"" === "0" // false 0 === "" // false 0 === "0" // false false === "false" // false false === "0" // false false === undefined // false false === null // false null === undefined // false " \t\r\n" === 0 // false上面的程式碼使得程式碼更清晰,如果兩個值的型別不同則直接傳回 false,這也會使得效能提升。
比較物件
儘管== 和=== 被稱為相等符號,但是當比較的兩個值中有一個類型是物件時,表現將大不相同。{} === {}; // false new String('foo') === 'foo'; // false new Number(10) === 10; // false var foo = {}; foo === foo; // true在這兒,不再只是比較兩個值是否相等,它將判斷兩個值是否引用同一個物件實例,這個行為比較像 C 中的指標。
總結
這裡強烈建議只使用嚴格相等符號 ===。如果我們需要做型別轉換,可以在比較前先做明確的型別轉換,而不是靠 Javascript 本身複雜的強制轉換方法。以上就是本章的全部內容,更多相關教學請訪問JavaScript影片教學
!