標記為「非數字」(NaN) 的值被視為數字,這似乎是自相矛盾的typeof 運算子。然而,這種行為源自於 NaN 的基本性質。
首先,NaN 是一種數字類型,儘管它的名字是如此。它表示無效或未定義的數值。雖然所有數字都是近似值並受到限制,但 NaN 是無法準確表示的數值的特定實例。
其次,NaN 不等於任何其他值,包括其本身。這是因為 NaN 不是特定值,而是無效或未定義結果的佔位符。因此,將 NaN 與其自身或任何其他值進行比較將始終傳回 false。
與 NaN 的比較總是會傳回無序結果:
NaN 不等於任何數字,包括它本身。這意味著即使將 NaN 與其自身進行比較也會導致 false。
訊號與非訊號比較謂詞:
一些比較操作,例如小於或大於,處理 NaN 時可以拋出異常或回傳 false。這些運算稱為訊號謂詞和非訊號謂詞。
使用等式和不等式測試 NaN:
由於等式和不等式測試是非信號式的,因此它們將不會拋出異常。如果測試一個常規數字與其自身是否相等,它將始終傳回 true。但是,如果測試 NaN 與其自身相等,它將始終傳回 false。這提供了一種「安靜地」檢測 NaN 值的便捷方法。
以上是為什麼 `typeof NaN` 回傳 \'number\'?的詳細內容。更多資訊請關注PHP中文網其他相關文章!