為什么南不等于南?相關的IEEE標準定義了數值常數NaN(而不是數字),并規定NaN應該與其自身進行比較。那是為什么?我熟悉的所有語言都實現了這個規則。但是,它經常會導致重大問題,例如當NaN存儲在容器中,當NaN存儲在正在排序的數據中時,等等。更不用說,絕大多數程序員期望任何對象都與自身相等(在他們了解NaN之前),因此,令人驚訝的是,它們增加了錯誤和混亂。IEEE標準是經過深思熟慮的,所以我相信有一個很好的理由,為什么NaN與其本身相比是不好的。我就是搞不懂是什么。
3 回答

呼如林
TA貢獻1798條經驗 獲得超3個贊
log(-1)
NaN
acos(2)
NaN
log(-1) == acos(2)
NaN
function compare(a,b) { return a == b || (isNaN(a) && isNaN(b)); }
添加回答
舉報
0/150
提交
取消