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学习它。如果你能指引我任何其他可靠的资源,我会很高兴。
答案 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);
的原因是因为undefined
(x
}没有属性Number
。
答案 2 :(得分:0)
isNaN
不是属性,它是全局函数或Number
静态方法(不适用于实例化变量)。
你必须使用:
isNaN(x);
Number.isNaN(x);
Preferencially, Number.isNaN,虽然IE,Opera或Safari尚不支持。