Number.NEGATIVE_INFINITY

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Number.NEGATIVE_INFINITY プロパティは負の無限大を表す値です。

試してみましょう

function checkNumber(smallNumber) {
  if (smallNumber === Number.NEGATIVE_INFINITY) {
    return "Process number as -Infinity";
  }
  return smallNumber;
}

console.log(checkNumber(-Number.MAX_VALUE));
// Expected output: -1.7976931348623157e+308

console.log(checkNumber(-Number.MAX_VALUE * 2));
// Expected output: "Process number as -Infinity"

グローバルの Infinity プロパティの負の値と同じです。

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

解説

Number.NEGATIVE_INFINITY の値は、数学的な無限大とは少々異なった振る舞いをします。

  • POSITIVE_INFINITY も含む任意の正の値と、 NEGATIVE_INFINITY の積は NEGATIVE_INFINITY になります。
  • NEGATIVE_INFINITY も含む任意の負の値と、 NEGATIVE_INFINITY の積は POSITIVE_INFINITY になります。
  • 任意の正の数を NEGATIVE_INFINITY で割った商は、負のゼロになります(IEEE 754 で定義されているとおり)。
  • 任意の負の数を NEGATIVE_INFINITY で割った商は、正のゼロになります(IEEE 754 で定義されているとおり)。
  • 零 と NEGATIVE_INFINITY の積は NaN になります。
  • NaN と NEGATIVE_INFINITY の積は NaN になります。
  • NEGATIVE_INFINITYNEGATIVE_INFINITY 以外の任意の負の値で割った商は POSITIVE_INFINITY になります。
  • NEGATIVE_INFINITYPOSITIVE_INFINITY 以外の任意の正の値で割った商は NEGATIVE_INFINITY になります。
  • NEGATIVE_INFINITYNEGATIVE_INFINITY または POSITIVE_INFINITY のいずれかで割った商は NaN になります。
  • x > Number.NEGATIVE_INFINITYx の値が NEGATIVE_INFINITY ではない場合に true になります。

成功した場合に有限数を返す関数がエラーである状態を示すために、Number.NEGATIVE_INFINITY プロパティを使いたいかもしれません。しかし、そのような場合は NaN の方がより適しているでしょう。

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

NEGATIVE_INFINITY の使用

以下の例では、変数 smallNumber に最小値よりも小さな値が代入されています。if ステートメントが実行されたとき、smallNumber-Infinity の値を持つので、処理が継続する前に smallNumber により扱いやすい値がセットされます。

js
let smallNumber = -Number.MAX_VALUE * 2;

if (smallNumber === Number.NEGATIVE_INFINITY) {
  smallNumber = returnFinite();
}

仕様書

Specification
ECMAScript® 2025 Language Specification
# sec-number.negative_infinity

ブラウザーの互換性

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
NEGATIVE_INFINITY

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

関連情報