IE Number.isNaN関数をサポートしないのはなぜですか?これらの関数が異なるため、Number.isNaN 'の代わりに単純な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('!');
そのコードは1回アラートを表示する必要があります。しかし、Number.isNaNをisNaNに変更すると、2回アラートが表示されます。違いがあります。
いくつかの代替機能が存在する可能性がありますか?
IENumber.isNaN関数をサポートしないのはなぜですか?
これはStackOverflowのトピックからはかなり外れていますが、 Number.isNaN
のMDNページ によると、どの標準でも定義されておらず、ECMAScript6のドラフト仕様でのみ定義されています。InternetExplorerはそれをサポートしていないブラウザだけではありません。
いくつかの代替機能が存在する可能性がありますか?
実際にはそうではありませんが、簡単に定義できます。
function myIsNaN(o) {
return typeof(o) === 'number' && isNaN(o);
}
または必要に応じて:
function myIsNaN(o) {
return o !== o;
}
「番号」なしでisNaNを使用する必要があります。このような:
for(a in someobj) if(isNaN(someobj[a])) alert('!');
これはクロムでも問題なく機能します。
詳細については、Microsoftサイトをご覧ください https://docs.Microsoft.com/en-us/scripting/javascript/reference/isnan-function-javascript