NaNはNot a Numberで、無効な数字を意味します。たとえば、次のような誤った演算の結果は NaN
を返します。
let n1 = 0 / 0;
let n2 = 10 / 'a';
console.log(n1); // NaN
console.log(n2); // NaN
1. Number.isNaN() で NaN かどうかを確認する
Number.isNaN()は、引数として渡された変数がNumber型でNaNの場合はtrue返します。それ以外はすべて false を返します。
let num = 0 / 0;
if (Number.isNaN(num)) {
console.log('num is NaN');
}
// output: num is NaN
たとえば、Number型ではない変数に対してNaNをチェックすると、次のようにfalseが返されます。
console.log(Number.isNaN('string')); // false
console.log(Number.isNaN(undefined)); // false
console.log(Number.isNaN(null)); // false
console.log(Number.isNaN([])); // false
console.log(Number.isNaN({})); // false
2. isNaN() で NaN かどうかを確認する
isNaN()も、以下のように引数として渡された変数がNaNであることを確認できます。
let num = 0 / 0;
if (isNaN(num)) {
console.log('num is NaN');
}
ところで問題は、 number 以外のタイプをチェックするときにも true が返されることがあります。したがって、 isNaN()
は使わず、 Number.isNaN()
を使うべきです。
console.log(isNaN(0 / 0)); // true
console.log(isNaN('string')); // true
console.log(isNaN(undefined)); // true
console.log(isNaN({})); // true
console.log(isNaN(null)); // false
console.log(isNaN([])); // false
3. Number.NaN === Number.NaN 表現を使用しない
===
を使用して NaN を NaN と比較する表現は使用しないでください。 JavaScriptでは、NaNはNaNと等しくないと判断され、falseを返します。
console.log(Number.NaN === Number.NaN); // false
Related Posts
- JavaScript - 現在のタイムスタンプを取得する
- Node.js - ファイル、ディレクトリの削除
- JavaScript - 文字列 空白 削除
- JavaScript sort() 関数、例の紹介
- JavaScript Set delete() 関数、値の削除
- JavaScript - 実行時間の測定方法
- JavaScript - 配列をオブジェクトに変換する4つの方法
- JavaScript - Mapの作成と初期化、3つの方法
- JavaScript - Map巡回、3つの方法
- JavaScript - Mapソート(キーまたはvalueでソート)
- JavaScript - オブジェクトに特定の値が存在することを確認する
- JavaScript - 数値がNaNであるかどうかを確認する方法
- JavaScript Enum (列挙型)
- JavaScript - 日付/時刻比較、3つの 方法
- JavaScript - 空の文字列の確認、2つの方法
- JavaScript - 最後の文字を削除する、4つの方法
- JavaScript - 配列を文字列に変換、3つの方法
- JavaScript - 複数行の文字列、3つの方法
- JavaScript - オブジェクトを文字列に変換する2つの方法
- JavaScript - 配列から重複排除、4つの方法
- JavaScript - 文字列の比較方法、5つの方法
- JavaScript - 文字列から数字のみを抽出する
- JavaScript - 配列のソート方法(昇順、降順)
- JavaScript - 文字列 切り出し(split、substr、substring、slice)
- JavaScript - Setを配列(Array)に変換する
- JavaScript - 文字列を配列(Array)に変換
- JavaScript - 関数の宣言方法
- JavaScript - 配列宣言、追加、削除などの基本的 な使用法のクリーンアップ
- JavaScript - 文字列を数値に変換する方法
- JavaScript - 文字列を結合する、接続する(concat、join、+)