🙂

[JavaScript]NaN とは(備忘録)

2024/10/13に公開

1.はじめに

・NaN(Not-a-Number)は、「数値でない」ことを示す特殊な数値です。
・NaN かどうか判定する場合、Number.isNaN() を使用するのが最も適切です。

2.サンプルプログラム

〇例1

Sample_1.js
console.log(0/0);
console.log(10 + NaN);

// NaNのデータ型を確認
console.log(typeof NaN);

// 曖昧な比較
console.log(NaN == NaN);
// 厳密な比較
console.log(NaN === NaN);

// 曖昧な比較
console.log(NaN != NaN);
// 厳密な比較
console.log(NaN !== NaN);
実行結果
NaN
NaN
number
false
false
true
true

重要:
NaN と NaN が一致しているかどうかを判定すると、false を返す特徴を NaN は持っています。

〇例2:Number.isNaN() を使用し、NaN か判定

Sample_2.js
console.log(Number.isNaN(NaN));
console.log(Number.isNaN(0/0));
console.log(Number.isNaN(10 + NaN));
console.log(Number.isNaN('ABC'));
console.log(Number.isNaN(123));
実行結果
true
true
true
false
false

重要:
Number.isNaN() は、与えられた値が数値且つその値が NaN である場合、true を返します。
そうでない場合、false を返します。

〇例3:Number.isNaN() とif文を使用し、NaN か判定

Sample_3.js
const num_1 = 0;
const num_2 = 0;

// 判定結果を再使用しない場合の記述
if (Number.isNaN(num_1/num_2)) {
    console.log('NaNです');
} else {
    console.log('NaNではありません');
}

// 判定結果を再利用したい場合の記述
result = Number.isNaN(num_1/num_2);

if (result) {
    console.log('NaNです');
} else {
    console.log('NaNではありません');
}
実行結果
NaNです
NaNです

3.参考

【JavaScript入門】今さら聞けない!NaNの使い方と判定方法まとめ
Number.isNaN()

4.その他

実行環境

Discussion