JavaScriptでNaN(Not a Number)を判定する際、`Number.isNaN()`メソッドは非常に便利です。このメソッドを使用することで、値がNaNであるかどうかを正確に判定することができます。
Number.isNaN()の基本的な使い方
const result1 = Number.isNaN(NaN); // true
const result2 = Number.isNaN(123); // false
const result3 = Number.isNaN('hello'); // false`Number.isNaN()`は引数として渡された値がNaNであるかどうかを判定し、真偽値(true/false)を返します。
グローバルisNaN()との違い
JavaScriptには`isNaN()`というグローバル関数も存在しますが、`Number.isNaN()`とは動作が異なります。
// グローバルisNaN()の場合
isNaN('hello'); // true
isNaN(undefined); // true
// Number.isNaN()の場合
Number.isNaN('hello'); // false
Number.isNaN(undefined); // false`Number.isNaN()`は、より厳密にNaNを判定します。一方、グローバルの`isNaN()`は引数を数値に変換してから判定を行うため、予期せぬ結果となることがあります。
実践的な使用例
function divideNumbers(a, b) {
const result = a / b;
if (Number.isNaN(result)) {
return '計算できません';
}
return result;
}
console.log(divideNumbers(10, 2)); // 5
console.log(divideNumbers(10, 0)); // Infinity
console.log(divideNumbers(0, 0)); // '計算できません'ブラウザ互換性
`Number.isNaN()`は比較的新しいメソッドですが、現代の主要なブラウザでは広くサポートされています。IE11以前のブラウザでは動作しないため、必要に応じてポリフィルを使用します。
if (!Number.isNaN) {
Number.isNaN = function(value) {
return value !== value;
};
}まとめ
- `Number.isNaN()`は値がNaNかどうかを厳密に判定
- グローバルの`isNaN()`より信頼性が高い
- 数値計算の結果を検証する際に特に有用
- モダンブラウザで広くサポート
`Number.isNaN()`を使用することで、より安全で信頼性の高いNaN判定を実装することができます。数値計算を扱うアプリケーションでは、このメソッドを積極的に活用することをお勧めします。