5

あるライブラリのソースでこれを見て、混乱しました。私は、それは常に「false」に評価されると思います。それを使う意味は何ですか?

4

2 に答える 2

6

vかどうかをチェックしますNaN:

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

標準から:

値 X が NaN であるかどうかを ECMAScript コードでテストする信頼できる方法は、X !== X という形式の式です。結果は、X が NaN である場合にのみ true になります。

ビルトインを使用しないのはなぜisNaN()ですか?

答えは簡単です。「isNaN()信頼性が十分ではありません。」. isNaN()失敗するケースは次のとおりです。

isNaN("NaN")         //true
isNaN(undefined)     //true
于 2012-07-11T10:16:59.840 に答える
1

「Not A Number」をテストします: NaN !== NaNequalstrue

MDNから:

NaN の初期値は Not-A-Number で、Number.NaN の値と同じです。最新のブラウザでは、NaN は設定も書き込みもできないプロパティです。そうでない場合でも、オーバーライドは避けてください。

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

于 2012-07-11T10:16:54.497 に答える