isNaN関数
【開発環境】
OS:Win11(64ビット)
VSCode1.72.2、
クロム
【isNaN関数】
グローバル関数のひとつである isNaN 関数は、対象の値が NaN かどうかを調べて true または false を返す。
・書式
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 となるかどうかを調べている点に注意してください。
※コメント投稿者のブログIDはブログ作成者のみに通知されます