JavaScriptの数値型には、1、2、3といった通常の数値以外に、
NaNとInfinityの2つの特殊な数値があります。
※どちらも数値型なので、typeofの結果はnumberになります。
1 2 3 |
console.log(typeof Infinity); ⇒ number console.log(typeof -Infinity); ⇒ number console.log(typeof NaN); ⇒ number |
NaN(非数)
NaNは非数と呼ばれる数値で以下のような計算をした場合にNaNになります。
1 2 3 |
0/0 → NaN NaN + 100 → NaN NaN + Infinity → NaN |
NaNに対して行った計算はNaNになります。
Infinity(無限大)
Infinityは無限大と呼ばれる数値で以下のような計算をした場合にInfinityになります。
Infinityには、正の無限大(Infinity)と負の無限大(-Infinity)があります。
1 2 3 4 5 |
10/0 → Infinity -10/0 → -Infinity Infinity + 100 → Infinity -Infinity * -Infinity → Infinity Math.pow(10,1000) → Infinity //JavaScriptの有効最大数を超えた場合 |
Infinityに対して行った計算はInfinityになりますが、Infinityで割った値は0になります。
1 2 |
Math.log(0) → 0 10 / Infinity → 0 |
その他
- NaNとInfinityは以下のようにも記述できます。
NaN ⇒ Number.NaN
Infinity ⇒ Number.POSITIVE_INFINITY
-Infinity ⇒ Number.NEGATIVE_INFINITY