このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

Number.NaN

Baseline 広く利用可能

この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2015年7月以降、すべてのブラウザーで利用可能です。

Number.NaN 静的データプロパティは非数 (Not-A-Number) を表す値であり、NaN と同じです。NaN の動作についての詳しい情報は、グローバルプロパティの説明を参照してください。

試してみましょう

function clean(x) {
  if (x === Number.NaN) {
    // true になることはない
    return null;
  }
  if (isNaN(x)) {
    return 0;
  }
}

console.log(clean(Number.NaN));
// 予想される結果: 0

数値 NaN です。

Number.NaN のプロパティ属性
書込可能不可
列挙可能不可
設定可能不可

解説

NaNNumber の静的プロパティですので、数値のプロパティとしてではなく、常に Number.NaN として使用してください。

値が数値であるかどうかのチェック

js
function sanitize(x) {
  if (isNaN(x)) {
    return Number.NaN;
  }
  return x;
}

仕様書

仕様書
ECMAScript® 2027 Language Specification
# sec-number.nan

ブラウザーの互換性

関連情報