JavaScriptのInfinityと-Infinityの意味と使い方を解説
生徒
「先生、JavaScriptでとても大きな数やとても小さな数を扱うとき、Infinityってよく出てきますけど、どういう意味ですか?」
先生
「Infinityは、『無限』を意味します。正の無限大はInfinity、負の無限大は-Infinityで表されます。」
生徒
「無限大って数値として使えるんですか?」
先生
「JavaScriptでは特別な数値として扱えます。計算の結果としてInfinityや-Infinityになることもあります。」
1. Infinityとは?
Infinityは、数学でいう無限大と同じ概念で、JavaScriptでは非常に大きな数値を超えた場合に自動的に割り当てられる値です。例えば、非常に大きな数を掛け算したり、1を0で割ったりした場合に出てきます。
console.log(1 / 0); // Infinity
console.log(1e308 * 10); // Infinity
Infinity
Infinity
ここで注意したいのは、Infinityは通常の数値と同じように計算できますが、無限大なので非常に特別な扱いが必要です。
2. -Infinityとは?
-Infinityは負の無限大を表します。0で負の数を割ったときや、非常に大きな負の数を扱う場合に出てきます。
console.log(-1 / 0); // -Infinity
console.log(-1e308 * 10); // -Infinity
-Infinity
-Infinity
正のInfinityと同じように、数学的な操作は可能ですが、負の無限大であることを意識して扱う必要があります。
3. Infinityと-Infinityの計算例
Infinityや-Infinityを使った計算は、通常の数値とは少し異なる挙動をします。
console.log(Infinity + 1000); // Infinity
console.log(-Infinity + 1000); // -Infinity
console.log(Infinity - Infinity); // NaN
Infinity
-Infinity
NaN
注意点として、Infinity同士の引き算や、-InfinityとInfinityの計算は定義できないためNaNになります。
4. Infinityを判定する方法
Infinityや-Infinityかどうかを調べたい場合、isFinite()という関数を使うと便利です。
console.log(isFinite(Infinity)); // false
console.log(isFinite(-Infinity)); // false
console.log(isFinite(1000)); // true
false
false
true
isFinite()は「有限な数値かどうか」を判定する関数です。InfinityやNaNはfalseになります。
5. Infinityの使いどころ
Infinityや-Infinityは、特に数値の範囲チェックや極端な値の初期化で使えます。例えば、配列の最大値や最小値を求めるときの初期値として便利です。
let numbers = [10, 50, -20, 100];
let max = -Infinity;
let min = Infinity;
for(let num of numbers){
if(num > max) max = num;
if(num < min) min = num;
}
console.log(max); // 100
console.log(min); // -20
100
-20
このように、-Infinityを最小値の初期化、Infinityを最大値の初期化に使うと、どんな数でも正しく比較できるので便利です。
6. Infinityを安全に扱うための注意点
Infinityや-Infinityは便利ですが、次の点に注意してください。
- Infinity同士の引き算や掛け算はNaNになることがある
- 他の数値と比較するときは範囲外の値として扱われる
- 無限大を返す計算がある場合、ユーザー入力やデータベースの値に影響しないように確認する
基本的には「非常に大きい値」「非常に小さい値」を扱うときの特別な値として理解しておけば大丈夫です。