Infinity
グローバルプロパティ Infinity は無限大を表す数値です。
仕様
> 1 / 0
Infinity
> -1 / 0
-Infinity
以下の定数でも表すことができます。
> Number.POSITIVE_INFINITY
Infinity
> Number.NEGATIVE_INFINITY
-Infinity
比較
> Infinity === Infinity
true
> -Infinity === -Infinity
true
> Infinity === -Infinity
false
加算・減算
Infinityに対しての加算・減算の結果はInfinityになります。
> Infinity + 1
Infinity
> Infinity - 1
Infinity
> Infinity++
Infinity
> Infinity--
Infinity
> Infinity + Infinity
Infinity
> -Infinity -Infinity
-Infinity
> Infinity - Infinity // 不定形でNaNになります。
NaN
ちなみにNumberで扱える値の範囲を越えるとInfinityになるようです。
精度の問題で丸めが発生するので、Number.MAX_VALUEよりも大きく見えても、Number.MAX_VALUEが返るケースもあります。
> Number.MAX_VALUE
1.7976931348623157e+308
> 1.7976931348623158e+308
1.7976931348623157e+308
> 1.7976931348623159e+308
Infinity
そのため、数値が大きすぎる比較は意図せずtrueになることもあるようです。
> 2e+308 === 3e+308
true
乗算
> Infinity * 0 // 不定形でNaNになります。
NaN
> Infinity * 1
Infinity
> Infinity * -1
-Infinity
> Infinity * Infinity
Infinity
> -Infinity * Infinity
-Infinity
除算
> Infinity / Infinity // 不定形でNaNになります。
NaN
> Infinity / 0
Infinity
> Infinity / -1
-Infinity
剰余演算
> Infinity % Infinity // 不定形でNaNになります。
NaN
> 3 % Infinity // 被除数が有限の時は被除数と同じ結果になります。
3
累乗
> Infinity**0 // 0乗は1になります。
1
> Infinity**1
Infinity
> Infinity**Infinity
Infinity