職案人

求職・歴史・仏教などについて掲載するつもりだが、自分の思いつきが多いブログだよ。適当に付き合って下さい。

JS--グローバル関数のisNaN

2024年05月06日 | JavaScript
isNaN関数

【開発環境】
OS:Win11(64ビット)
VSCode1.72.2、
クロム

【isNaN関数】
グローバル関数のひとつである isNaN 関数は、対象の値が NaN かどうかを調べて true または false を返す。

・書式
isNaN(値)

引数に指定した値が NaN かどうかを調べます。値が数値型ではない場合はまず数値型に変換されたあとで調べます。

NaN は特殊な値で、等価演算子である == や === で NaN 自身と等しいかどうか調べても false となるため等価演算子で NaN かどうかを調べることはできません。そのため isNaN 関数を使います。

console.log(NaN == NaN);
>> false

console.log(NaN === NaN);
>> false

isNaN(NaN);
>> true

isNaN 関数では、引数として NaN 以外の値で数値ではない値が指定された場合は数値に変換した上で NaN かどうかを調べます。

数値は false となります。またグローバルオブジェジェクトのプロパティで無限大を表す Infinity も false となります。

・サンプル
isNaN(10);
>> false
isNaN(Infinity);
>> false

文字列は true となりますが、数値のみで構成される文字列と空文字については数値に変換したときに数値となるため false となります。

サンプル

isNaN('Hello');  // 数値に変換すると NaN
>> true

isNaN('24old');  // 数値に変換すると NaN
>> true

isNaN('72');  // 数値に変換すると 72
>> false

isNaN('');  // 数値に変換すると 0
>> false

true は数値に変換すると 1 、 false は数値に変換すると 0 、 null は数値に変換すると 0 となるため false となります。 undefined は数値に変換すると NaN となるため true となります。

isNaN(true);  // 数値に変換すると 1
>> false

isNaN(false);  // 数値に変換すると 0
>> false

isNaN(null);  // 数値に変換すると 0
>> false

isNaN(undefined);  // 数値に変換すると NaN
>> true

値がオブジェクト型の場合はそれぞれ異なります。

isNaN([10]);  // 数値に変換すると 10
>> false

isNaN([10, 20]);  // 数値に変換すると NaN
>> true

isNaN([]);  // 数値に変換すると 0
>> false

isNaN({a:'10'});  // 数値に変換すると NaN
>> true

isNaN 関数は対象の値が数値かどうかではなく、対象の値を数値に変換したときに NaN となるかどうかを調べている点に注意してください。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする