ますisNaNとNumber.isNaNでJS差

ますisNaN

我々はますisNaNにパラメータを渡すと、その意図は成功したリターンがfalseの場合、それはtrueを返すに失敗した場合、番号()メソッドによって、これらのパラメータ番号タイプを変換しようとすることです。

そうますisNaNのみ着信パラメータは数ではなくNaNに等しい厳密裁判官か否かに変換することができるかどうかを決定します。

例:

番号(「テスト」)// 出力はNaN

 首尾よく変換なし「テスト」Number型なので、真の次のコードの出力はありませんので

console.log(ますisNaN( 'テスト'))// trueに

 

Number.isNaN

パラメータが厳密に等しいのNaN(すなわち===)を通過したかどうかを決定します。

それはNumber.isNaNを使用するどのような状況の下で、一般的でしょうか?

2つの計算変数は、我々はその値Number.isNaNがNaNであるかを決定するために使用することができた場合

console.log(Number.isNaN(1 / 'テスト')); //プリント真

 

両者の違い

違いは、ほとんどのNumber.isNaNとのisNaN、Number.isNaN型変換の挙動が存在しないということです。

console.log(ますisNaN( 'テスト'))// trueに 
はconsole.log(Number.isNaN( 'テスト'))// falseに

上記のコードは、文字列「テスト」に合格し、なぜ異なる結果されていますか?その理由は次のとおりです。

ナンバーますisNaNは、結果番号(「テスト」)がNaNであるので、最終的にはtrueを返しますので、それは数値に文字列「テスト」タイプを変換しようとしますが、変換が失敗し、メソッドを渡します。

そしてNumber.isNaN方法が、厳密に決定されたパラメータが合同でのNaN(「テスト」=== NaNに)渡され、文字列は、問題の進路出力偽NaNで同一ではありません。

 

おすすめ

転載: www.cnblogs.com/Mrrabbit/p/10990218.html