在ActionScript中,(NaN == parseFloat(input.text))警告说它将永远是false。为什么?

时间:2020-03-06 14:53:44  来源:igfitidea点击:

尽管有相当清楚的文档指出,当我编写类似以下的代码块时,parseFloat()可以将NaN作为值返回:

if ( NaN == parseFloat(input.text) ) {
  errorMessage.text = "Please enter a number."
}

我被警告比较将永远是错误的。测试表明警告是正确的。

更正的文档在哪里,如何将其编写为可与AS3一起使用?

解决方案

因为将任何内容与NaN进行比较总是错误的。使用isNaN()代替。

isNaN(parseFloat(input.text))

可以在此处的Adobe Flex语言参考以及其他全局可用功能中找到文档。

顺便说一句,如果由于某种原因我们无法访问isNaN(),则传统方法是将数字与其自身进行比较:

if( number != number )
{
    //Is NaN 
}