为什么不x = 1/0的var x.isNaN返回Number?

时间:2014-04-28 12:17:17

标签: javascript

typeof(Infinity)在Javascript中返回Number

但为什么不x.isNaN, where x = 1/0,返回Number

示例代码:

 var x = 1/0;

 document.write(typeof(x)); //returns Number

 document.write(x.isNaN); //return undefined

P.S:我是Javascript的新手并从W3Schools学习它。如果你能指引我任何其他可靠的资源,我会很高兴。

3 个答案:

答案 0 :(得分:0)

数字(包括NaN)没有isNaN方法。它是全球性的。你想要的实际上是isNaN(x)。 (注意大写N.)

答案 1 :(得分:0)

isNan不是任何数字的属性。但是,isNaN既是全球范围的函数,也是on the Number object。 (后者是更新/更健壮的版本)

由于isNaN是一个函数,您必须传递您想要检查的变量:
<{1}}或isNaN(x)将按预期返回Number.isNaN(x)

true返回document.write(x.isNaN);的原因是因为undefinedx}没有属性Number

答案 2 :(得分:0)

isNaN不是属性,它是全局函数或Number 静态方法(不适用于实例化变量)。

你必须使用:

isNaN(x);
Number.isNaN(x);

Preferencially, Number.isNaN,虽然IE,Opera或Safari尚不支持。