首頁  >  文章  >  web前端  >  Javascript學習筆記之相等符號與嚴格相等符號

Javascript學習筆記之相等符號與嚴格相等符號

PHPz
PHPz原創
2016-05-16 16:30:401727瀏覽

本章詳細介紹了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影片教學

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn