LoginSignup
3
1

More than 3 years have passed since last update.

JavaScriptのInfinityについて

Last updated at Posted at 2019-05-29

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
3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1