2012-07-11 9 views

答えて

6

vNaNであるか否かをチェックする。

値XがNaNである場合のECMAScriptコードをテストするための信頼できる方法は、フォームの式である:

if(v !== v){ 
    //'v' is NaN here 
} 

standardからX!== X。結果が真となるのは、XがNaNの場合のみです。

組み込みのisNaN()を使用しないのはなぜですか。

答えは簡単です。「isNaN()は十分に信頼性がありません。」です。 isNaN()が失敗したことになるときここでは例は、以下のとおりです。

isNaN("NaN")   //true 
isNaN(undefined)  //true 
+0

明らかES6でそれを行う方法は、 '' Object.is(OBJは、NaN)です。http://wiki.ecmascript.org/doku.php ?id = harmony:egal –

+0

@OttoAllmendingerかなり面白いです。情報がありがとうございます。 – Engineer

1

NaN !== NaNMDNからtrue

に等しい:

のNaNの初期値は-A-番号ではありません - 数の値と同じ。 NaN。最新のブラウザでは、NaNは設定不可能な の書き込み不可能なプロパティです。そうでない場合でも、 を無効にしないでください。

プログラムでNaNを使用することは、まれです。数学関数が(Math.sqrt(-1))で失敗した場合、または を解析しようとしている関数が失敗した場合は、(parseInt("blabla"))の戻り値 が返されます。

関連する問題