ホームページ  >  記事  >  ウェブフロントエンド  >  jsにおけるNaNの出現に関する分析 new Date()_javascriptスキル

jsにおけるNaNの出現に関する分析 new Date()_javascriptスキル

WBOY
WBOYオリジナル
2016-05-16 17:49:021485ブラウズ

この NaN は NaN ではありません:

プログラム コードは次のとおりです:

コードをコピーします コードは次のとおりです:

var date =new Date(d);
if(!date || !date.getFullyear) {
return;

}
return; S.Date.format( d,'yyyy-mm-dd');//書式設定関数はこの記事とは関係ありません


他のブラウザでは正常に動作しますが、IE では動作します、プログラムはエラーを報告します
IE デバッガーでは、図に示すように、日付が NaN であることがわかります:


NaNであればif判定はtrueか""を返すのですが、不思議な場面が起こりました、

コードは、if 判定が false を返すことを示しており、コンソールの結果もこれを示しています。



日付 = NaN であることがわかりますが、! date は false、!NaN は true、私の最初の反応は、これは JS のバグですか?
次にいくつかのテストを行いました

コードをコピーします コードは次のとおりです:

var date = NaN;
alert(!date) // true を返す
var date = new Date('2011-1-1');
alert(!date) // false を返す

しかし、考えてみてもまだ完全に正しいとは言えなかったので、コンソールで次のテストを実行しました:

これは、日付の getFull Year が存在し、日付がオブジェクトであることを示しています

これは、日付が NaN ではなくオブジェクトであることも示していますが、これは単に IE デバッガーの問題です

date.getFull Year() =》NaN
date.getDate() =》NaN
これらの NaN は実際の NaN です
概要:
New Date(ie の下の「日付テキスト」) は特別な日付オブジェクトですが、IE デバッガーではこれが NaN として表示され、数値を返すメソッドはすべて NaN を返します。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。