JavaScript の isNaN() と Number.isNaN() とそれらの違いを詳しく見る

ではJavaScript、通常、isNaN()値が であるかどうかを確認するために使用しますNaN(Not-a-Number)ただし、ES6 で導入されたNumber.isNaN()メソッドは似ていますが、それらの間には微妙な違いがあり、それについてこの記事で明らかにします。

1.isNaN()はグローバル関数ですが、 の静的メソッドNumber.isNaN()です。Number

まずは基本的な使い方を見てみましょう。

// 代码
isNaN(NaN); // true
isNaN("Hello"); // true
Number.isNaN(NaN); // true
Number.isNaN("Hello"); // false

上に示したように、isNaN() 関数は引数を数値に変換しようとし、結果が であるかどうかを確認しますNaNisNaN("Hello") が を返すのはこのためですtrue。数値以外の文字列を数値に変換しようとすると が返されるからですNaN

対照的に、Number.isNaN()引数を数値にキャストする試みは行われません。パラメータ自体が の場合にのみ返されNaNますtrue

2.isNaN()数値型以外のパラメータでは問題が発生します。

これはisNaN()よくある落とし穴です。

// 代码
isNaN("123"); // false

この例では、数値として解釈できない場合でも文字列isNaN("123")が返されます。これは、最初に文字列を数値に変換しようとし、数値に変換できるため、 を返すためですfalse"123"isNaN()"123"123false

ただし、Number.isNaN()数値以外のパラメーターについては誤解を招くことはありません。

// 代码
Number.isNaN("123"); // false

3. 利用シーン

isNaN()値が であるかどうかを確認する必要がある場合、NaNおよび数値以外の値を として扱う必要がある場合に使用しますNaN数値以外の値を として扱わず、値が であるかどうかを厳密にチェックする必要がある場合に
使用しますNumber.isNaN()NaNNaN

要約する

isNaN()どちらNumber.isNaN()にもそれぞれの役割がありますが、両者の微妙な違いに注意してください。適切な関数の選択はユースケースによって異なりますが、値が NaN であるかどうかをより正確に確認する必要がある場合は、Number.isNaN()この関数を選択することをお勧めします。これは、数値以外の値も同様に処理したい場合にNaN使用できますisNaN()

JavaScriptこれらの違いを理解すると、より信頼性の高いコードを作成し、型変換によって引き起こされる予期しないエラーを回避するのに役立ちます。

おすすめ

転載: blog.csdn.net/JaneLittle/article/details/132452979