JavaScript中用"=="還是"==="解答
來源:懂視網
責編:小采
時間:2020-11-27 20:30:49
JavaScript中用"=="還是"==="解答
JavaScript中用"=="還是"==="解答:絕大多數場合應該使用 === ,只有檢測 null/undefined 的時候可以使用 x == null ,因為通常我們不區分 null 和 undefined ,即將 x == null 作為 x === null x === undefined 的縮寫。== 的比較看似會比較方便,比如 1 == '1
導讀JavaScript中用"=="還是"==="解答:絕大多數場合應該使用 === ,只有檢測 null/undefined 的時候可以使用 x == null ,因為通常我們不區分 null 和 undefined ,即將 x == null 作為 x === null x === undefined 的縮寫。== 的比較看似會比較方便,比如 1 == '1

絕大多數場合應該使用 === ,只有檢測 null/undefined 的時候可以使用 x == null ,因為通常我們不區分 null 和 undefined ,即將 x == null 作為 x === null || x === undefined 的縮寫。
== 的比較看似會比較方便,比如 1 == '1' ,但是會埋下隱患,比如可能對類型做出錯誤的假設。
例子:
if (x == 10) x += 5 www.2cto.com
如果傳入的x是字符串'10',x的結果會變成'105'。在后續運算中字符串'105'又可能被轉型,從而引入隱蔽的錯誤。
另外,程序員可能不自覺的依賴某些假設——比如相等比較應該具有傳遞性,即 a = b, b = c,應該能得出 a = c。但是JavaScript的 == 不具有傳遞性。比如 0 == '0' ,0 == '',但是 '0' != '' 。
所以 JS的 == 并非是 Java/C# 的 equals() ,因為 Java/C# 語言都是要求 equals() 必須保證傳遞性的。
總之,對于大型編程來說,== 的這點小小的便利性無法與其帶來的風險相比。
建議:
忘掉==, 只用===。 ==是個design失誤。它會嘗試進行類型轉換(不是java的equal,它是well defined),類型轉換的規則不好記。并且還破壞傳遞性。
只用===,!==,你寫javascript的日子會舒服一點
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com
JavaScript中用"=="還是"==="解答
JavaScript中用"=="還是"==="解答:絕大多數場合應該使用 === ,只有檢測 null/undefined 的時候可以使用 x == null ,因為通常我們不區分 null 和 undefined ,即將 x == null 作為 x === null x === undefined 的縮寫。== 的比較看似會比較方便,比如 1 == '1