Javascript Number.isNaN不';不存在于IE中

Javascript Number.isNaN不';不存在于IE中,javascript,internet-explorer,numbers,nan,Javascript,Internet Explorer,Numbers,Nan,为什么IE不支持Number.isNaN功能?我不能用简单的isNan代替Number.isNan,因为这些函数是不同的! 例如: Number.isNaN("abacada") != isNaN("abacada") //false != true 我需要抽象字符串和数字并检查,是否有些变量真的包含NaN(我指的是NaN常量,但不是像字符串那样的数字值) 该代码应显示警报1次。但如果我将Number.isNaN更改为isNaN,它将发出2次警报。这是有区别的 可能存在一些替代功能吗 为什么I

为什么IE不支持Number.isNaN功能?我不能用简单的isNan代替Number.isNan,因为这些函数是不同的! 例如:

Number.isNaN("abacada") != isNaN("abacada") //false != true
我需要抽象字符串和数字并检查,是否有些变量真的包含NaN(我指的是NaN常量,但不是像字符串那样的数字值)

该代码应显示警报1次。但如果我将Number.isNaN更改为isNaN,它将发出2次警报。这是有区别的

可能存在一些替代功能吗

为什么IE不支持Number.isNaN功能

对于堆栈溢出来说,这是一个相当离题的话题,但是根据,它没有在任何标准中定义-它只在ECMAScript 6的规范草案中定义-并且Internet Explorer不是唯一不支持它的浏览器

可能存在一些替代功能吗

不太可能,但您可以轻松定义一个:

function myIsNaN(o) {
    return typeof(o) === 'number' && isNaN(o);
}
或者,如果您愿意:

function myIsNaN(o) {
    return o !== o;
}

您需要使用不带“数字”的isNaN。如下所示:

for(someobj中的a)if(isNaN(someobj[a]))警报(“!”)

这也适用于铬合金


您可以在microsoft网站上找到更多信息

此处的
isNan
与执行
o!==保罗:没有区别。我将添加它作为替代,谢谢。@ruakh不会强制将非数值强制为数字吗?当然,如果你们两人都提到过,@ComFreek:是的,是的——因此是
Number.isNaN
,还有这个问题,还有这个答案——但我恐怕不明白你的意思是什么?@ComFreek:我想你错过了保罗评论中的“这里”这个词。
isNaN(o)
o!==o
位于
&
运算符的右侧,其左侧为
typeof(o)==='number'
,因为在这种情况下,类型强制必须是禁止的。Internet Explorer的当前预览版本支持此方法。出于测试目的,您可以将此浏览器流式传输到桌面。Microsoft的边缘浏览器实现了这一点。截至目前,IE 11还未发布。
function myIsNaN(o) {
    return o !== o;
}