许多语言都有 isNaN() 函数。我问自己:为什么要检查不是数字?
这个原因纯粹是逻辑原因还是检查不是数字比检查是数字更快?
注意这是一个纯粹的理解问题。例如,我知道我可以否定 isNaN() 来实现 isNumber() 函数。
然而,我正在寻找一个原因,为什么我们要检查而不是数字?
最佳答案
In computing, NaN (Not a Number) is a value of numeric data type representing an undefined or unrepresentable value, especially in floating-point calculations.
因为非数字是表达式的特殊情况。
你不能只使用 0 或 -1 或类似的数字,因为这些数字已经有意义。
不是数字意味着计算中出现问题,无法计算出有效的数字。
这与 null
的思路相同。当然,我们可以指定一个任意数值来表示 null
,但这会令人困惑,并且我们会在极端情况下遇到各种奇怪的错误。
关于numbers - 为什么我们有 "is not a Number"(isNan) 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3885114/