PR

【JavaScript】isNaN 関数を利用した数値判定の挙動まとめ

coding02 JavaScript
この記事は約3分で読めます。
記事内に広告が含まれています。

この記事では、JavaScriptの isNaN 関数の挙動について具体的な例を通じて紹介します。

以下に、さまざまな型に対する isNaN の評価結果を記載します。

備忘録としてご利用ください。

1. undefined の場合

undefined を評価すると、isNaNtrue を返します。このことから、undefined は非数値として評価されると言えます。

console.log(isNaN(undefined)); // true
スポンサーリンク

2. null の場合

null を評価すると、意外にも isNaNfalse を返します。なぜなら、null は暗黙的に 0 と解釈されるからです。

console.log(isNaN(null)); // false

3. 数値型の場合

当然ながら、数値型のデータは数値として評価されます。よって isNaNfalse を返します。

console.log(isNaN(123)); // false
console.log(isNaN(-456)); // false

4. 文字列型の場合

文字列型のデータは、その内容によります。文字列が数値を表している場合、isNaNfalse を返します。それ以外の場合は true を返します。

console.log(isNaN("123")); // false
console.log(isNaN("Hello World")); // true

5. オブジェクト型の場合

オブジェクト型を評価すると、通常 isNaNtrue を返します。

console.log(isNaN({})); // true
console.log(isNaN([])); // false, 空の配列は暗黙的に0に変換されます
スポンサーリンク

6. 真偽値型の場合

真偽値型を評価すると、isNaNfalse を返します。JavaScriptでは、true1 として、false0 として扱われます。

console.log(isNaN(true)); // false
console.log(isNaN(false)); // false

7. 配列の要素がある場合

配列の要素が1つで数値の場合、isNaNfalse を返します。それ以外の場合(複数の要素がある場合や要素が非数値の場合)は、true を返します。

console.log(isNaN([123])); // false
console.log(isNaN([123, 456])); // true
console.log(isNaN(["Hello"])); // true

8. NaN 自体を評価する場合

NaN 自体を評価すると、isNaNtrue を返します。NaN は "Not a Number" の略で、非数値を表す特殊な値です。

console.log(isNaN(NaN)); // true

参考リンク

MDN Web Docs: isNaN()

おわりに

ビジネスロジックの構築時に意外と登場する機会が多いです。

特に null, undefined あたりの挙動は混乱しがちなので備忘録として覚えておきましょう。

コメント

タイトルとURLをコピーしました