标记为“非数字”(NaN) 的值被视为数字,这似乎是自相矛盾的typeof 运算符。然而,这种行为源于 NaN 的基本性质。
首先,NaN 是一种数字类型,尽管它的名字如此。它表示无效或未定义的数值。虽然所有数字都是近似值并受到限制,但 NaN 是无法准确表示的数值的特定实例。
其次,NaN 不等于任何其他值,包括其本身。这是因为 NaN 不是特定值,而是无效或未定义结果的占位符。因此,将 NaN 与其自身或任何其他值进行比较将始终返回 false。
与 NaN 的比较始终返回无序结果:
NaN 不等于任何数字,包括它本身。这意味着即使将 NaN 与其自身进行比较也会导致 false。
信号和非信号比较谓词:
一些比较操作,例如小于或大于,在处理 NaN 时可以抛出异常或返回 false。这些操作称为信号谓词和非信号谓词。
使用等式和不等式测试 NaN:
由于等式和不等式测试是非信号式的,因此它们将不抛出异常。如果测试一个常规数字与其自身是否相等,它将始终返回 true。然而,如果测试 NaN 与其自身相等,它将始终返回 false。这提供了一种“安静地”检测 NaN 值的便捷方法。
以上是为什么 `typeof NaN` 返回 \'number\'?的详细内容。更多信息请关注PHP中文网其他相关文章!