来自MDN
//这是一个误报,也是isNaN并非完全不正确的原因
可靠
isNaN('blabla'); // true:“ blabla”将转换为数字。
上面的false positive
如何? blabla
确实不是数字,因此应该是true positive
。在上面不是为什么isNaN is not entirely reliable
的好例子。
我一直在某些数字系统中查找blabla
是一个数字,没有遇到任何问题。
最佳答案
上面的假阳性结果如何? blabla确实不是一个数字吗
因此,它应该是一个真正的肯定。
因为传递给isNaN()
的参数被隐式转换为number
类型(无论它是否可以是实际数字)。我怀疑这是因为某些字符串可以具有数字等效项。
但是,Number.isNaN()
方法是一种更具体的测试,它会返回正确的结果,因为不会进行任何转换-传递的值不得为NaN
,并且其非强制类型必须为Number
才能返回false
。
您可以认为这两个版本类似于==
和===
。
console.log(isNaN("BlahBlah")); // true!
console.log(Number.isNaN("BlahBlah")); // false ;)
关于javascript - isNaN('blabla');`->真是假阳性吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50535101/