为什么nodejs中的isNaN函数在以下情况下返回false?
isNaN(''),isNaN('\n'),isNaN('\t')
Run Code Online (Sandbox Code Playgroud)
这很奇怪.
有人有任何想法,因为我认为NaN代表的不是一个数字.
有人可以澄清一下
提前致谢!
Esa*_*ija 15
因为您没有传递数字,它会将其转换为数字.所有这些转换为0哪些是0和不NaN
Number('')
0
Number('\n')
0
Number('\t')
0
isNaN(0)
false
Run Code Online (Sandbox Code Playgroud)
请注意,这NaN不代表"不是JavaScript编号".实际上它与JavaScript完全分开,并且存在于支持IEEE-754浮点数的所有语言中.
如果你想检查某些东西是否是javascript编号,那么检查就是
if (typeof value === "number") {
}
Run Code Online (Sandbox Code Playgroud)
isNan()旨在帮助检测“数学上未定义”的事物 - 例如0/0-
node
> isNaN(0/0)
true
> isNaN(1/0)
false
> isNaN(Math.sqrt(-1))
true
> isNaN(Math.log(-1))
true
Run Code Online (Sandbox Code Playgroud)
您在这个问题中得到的关于如何检测数字的其他建议是可靠的。
| 归档时间: |
|
| 查看次数: |
19139 次 |
| 最近记录: |