本記事では、JavaScriptのNaN(Not-a-Number)について解説しています。
JavaScriptの学習におすすめ書籍
1冊ですべて身につくJavaScript入門講座
メリット
- 誰でも分かるように嚙み砕いて説明してくれる
- アニメーションの知識が深く学べる
- 1つのWebサイトを作りながら学べる
ポチップ
先輩くん
Amazon Kindle Unlimitedに登録すると、月額980円で読み放題だからオススメだよ!
初回30日間は無料だから、まだ登録したことのない人はぜひ試してみてね!
全プログラマー必見!
変数名/関数名にもう悩まない!
変数名/関数名にもう悩まない!
リーダブルコード
メリット
- 美しいコードが書けるが自然と書けるようになる
- 他の開発者が理解しやすいコードになる
著:Dustin Boswell, 著:Trevor Foucher, 解説:須藤 功平, 翻訳:角 征典
¥2,640 (2023/07/23 02:48時点 | Amazon調べ)
目次
NaNとは?
NaN(Not-a-Number)とは、JavaScriptの特殊な値の1つで数値として解釈できないことを表します。
NaNは計算によって出力された結果が数値で表せない場合に返されます。例えば、以下のような計算でNaNは返されます。
console.log(0 / 0); // => NaN
console.log(10 / 'str'); // => NaN
また、NaNを使った計算もNaNが返されます。
console.log(NaN + 1); // => NaN
TypeScriptのように予め変数や関数に型をセットすることでNaNの発生を防止することができますが、JavaScriptでは動的に型を生成するため意図しないところで数値が別の型に変換されてNaNが返されることもあるので注意しようね。
NaNの判定は特殊
NaNは特殊な値であるため、通常の比較演算子(==, ===)を使用してNaNと比較しようとしても正確な結果は得られません。また、NaN同士で比較してもfalseが返されるという面白い性質を持っています。
console.log(NaN == NaN); // => false
console.log(NaN === NaN); // => false
もし、NaNであるか判定したい場合はNumber.isNaNメソッドを使います。
const result = 0 / 0;
console.log(result); // => NaN
console.log(Number.isNaN(result)); // => true