来自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/

10-10 13:13