为什么IE不支持 Number.isNaN 功能?我不能使用简单的isNan而不是Number.isNaN'因为这些功能是不同的! 例如:
Number.isNaN("abacada") != isNaN("abacada") //false != true
我需要抽象字符串和数字并检查,是否真的包含 NaN (我的意思是NaN常量,但不是像字符串那样的数字值)。
someobj.someopt = "blah"/0;
someobj.someopt2 = "blah";
someobj.someopt3 = 150;
for(a in someobj) if(Number.isNaN(someobj[a])) alert('!');
该代码应显示一次警报。但如果我将Number.isNaN更改为isNaN,它将发出2次警报。存在差异。
可能存在一些替代功能吗?
答案 0 :(得分:16)
为什么IE不支持 Number.isNaN 功能?
Stack Overflow相当偏离主题,但根据the MDN page for Number.isNaN
,它没有在任何标准中定义 - 它只在ECMAScript 6的草案规范中 - 并且Internet Explorer并不是唯一不支持它的浏览器。
可能存在一些替代功能吗?
不是,但您可以轻松定义一个:
function myIsNaN(o) {
return typeof(o) === 'number' && isNaN(o);
}
或者如果您愿意:
function myIsNaN(o) {
return o !== o;
}
答案 1 :(得分:1)
您需要使用不带“数字”的isNaN。像这样:
for(a in someobj) if(isNaN(someobj[a])) alert('!');
这也适用于镀铬。
您可以在微软网站https://docs.microsoft.com/en-us/scripting/javascript/reference/isnan-function-javascript
上找到更多信息