Number.isNaN()は、ES6(ECMAScript 2015)で導入されたNumberオブジェクトの静的メソッドで、引数が厳密にNaN(Not-a-Number)であるかどうかを判定する関数です。

構文

編集
Number.isNaN(testValue)

戻り値

編集
  • 引数が厳密にNaNの場合のみtrueを返します
  • 型変換を行わず、引数の型と値を厳密にチェックします

動作例

編集

NaN判定

編集
  • Number.isNaN(NaN)true
  • Number.isNaN(Number.NaN)true

非NaN判定

編集
  • Number.isNaN("NaN")false
  • Number.isNaN(undefined)false
  • Number.isNaN(0)false
  • Number.isNaN("文字列")false

グローバル関数との違い

編集

Number.isNaN()は、グローバルのisNaN()関数とは大きく異なります。

  • Number.isNaN()は型変換を行わない
  • Number.isNaN()は引数が厳密にNaNの場合のみtrueを返す
  • isNaN()は型変換を行い、数値に変換できない値もtrueと判定

型チェックの仕組み

編集
  • 引数の型がnumberであるかを最初にチェック
  • 値がNaNであるかを厳密に判定
  • 型変換は一切行わない

注意点

編集
  • ES6(ECMAScript 2015)以降で利用可能
  • モダンJavaScriptでの推奨メソッド
  • 型安全性が高い

関連メソッド

編集

ブラウザ互換性

編集
  • モダンブラウザで完全対応
  • Interner Explolerでは非対応
  • Edge 12以降でサポート

例外

編集

特定の例外は発生しませんが、引数の型によって常にtrue or falseを返します。