【Amazon】人気の商品が日替わりで登場!
毎日お得なタイムセール!商品をみる

【JavaScript】NaNとは?比較方法についても解説

本記事では、JavaScriptのNaN(Not-a-Number)について解説しています。

JavaScriptの学習におすすめ書籍
1冊ですべて身につくJavaScript入門講座
総合評価
( 5 )
メリット
  • 誰でも分かるように嚙み砕いて説明してくれる
  • アニメーションの知識が深く学べる
  • 1つのWebサイトを作りながら学べる
楽天ブックス
¥2,794 (2024/04/28 02:24時点 | 楽天市場調べ)
先輩くん

Amazon Kindle Unlimitedに登録すると、月額980円で読み放題だからオススメだよ!

後輩ちゃん

初回30日間は無料だから、まだ登録したことのない人はぜひ試してみてね!

全プログラマー必見!
変数名/関数名にもう悩まない!
リーダブルコード
総合評価
( 5 )
メリット
  • 美しいコードが書けるが自然と書けるようになる
  • 他の開発者が理解しやすいコードになる
著: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

ブログランキング・にほんブログ村へ PVアクセスランキング にほんブログ村 FC2 Blog Ranking

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次