javascript中NaN的保留关键字是什么?

loc*_*ock 8 javascript nan

如果我想测试表达式的结果,函数将返回NaN我将如何检查?
示例:
$('amount').value.toInt()!='NaN'
^不起作用,我假设返回的值不是一个字符串,
$('amount').value.toInt()!=NaN
^似乎也没有工作,这一个似乎很明显,

所以我如何检查返回值是不是一个数字?

Mil*_*les 36

NaN值被定义为不等于所有东西,包括它自身.使用该isNaN()函数测试值是否为NaN ,足够恰当.(ECMAScript 6 Number.isNan()为非数字参数添加了一个具有不同语义的函数,但截至2015年,它并未在所有浏览器中都受支持).

有两个内置属性可用,具有NaN值:全局NaN属性(即window.NaN在浏览器中),和Number.NaN.它不是语言关键字.在较旧的浏览器中,NaN属性可能会被覆盖,可能会产生令人困惑的结果,但使用ECMAScript 5标准时,它是不可写的.

  • 正如@some在注释中指出的那样,还有全局函数isFinite()可能很有用.

  • @Breton:NaN = 1; 警报(isNaN(NAN)); //提醒错误.但isNaN("text")仍然返回true.未定义也是如此.这也只是一个全局变量,原始值未定义.你可以做undefined = 1.这就是为什么一个人使用:typeof variable ==="undefined" (2认同)