javascript的比較運算符

JavaScript在設(shè)計時,有兩種比較運算符:

  1. == 比較,它會自動轉(zhuǎn)換數(shù)據(jù)類型再比較,很多時候,會得到很詭異的結(jié)果,不推薦。
  2. === 比較,它不會自動轉(zhuǎn)化數(shù)據(jù)類型,如果數(shù)據(jù)類型不一致,返回false,如果一致,再比較。推薦。不過注意先轉(zhuǎn)變數(shù)據(jù)類型。

另一個例外是 NaN,這個特殊的 number 與其他值都不相等,包括它自己:
NaN === NaN; // false
唯一能判斷NaN的方法是通過 isNaN() 函數(shù):
isNaN(NaN); // true
最后要注意浮點數(shù)的相等比較:
1 / 3 === (1 - 2 / 3); // false
這不是JavaScript的設(shè)計缺陷。浮點數(shù)在運算過程中產(chǎn)生的誤差,因為計算機(jī)無法精確表示無限循環(huán)的小數(shù),要比較兩個小數(shù)是否相等,只能計算他們之差的絕對值,看是否小于某個閥值:
Math.abs(1 / 3 - (1 - 2 / 3)) < 0.0000001; // true

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容