JSの上限はいくつですか?

JavaScript の上限とは?

JavaScript は、Web 開発において欠かせないプログラミング言語の一つですが、その能力には限界があります。特に数値の取り扱いにおいては、JavaScript が表現できる最大値が存在します。

JavaScript の最大整数値

JavaScript で安全に表現できる最大の整数は、 `Number.MAX_SAFE_INTEGER` という定数で定義されており、その値は **9,007,199,254,740,991** です。


console.log(Number.MAX_SAFE_INTEGER); // 出力: 9007199254740991

この値を超える整数を扱う場合、正確な計算結果が得られない可能性があります。これは、JavaScript が内部で数値を IEEE 754 倍精度浮動小数点数として扱っているためです。

浮動小数点数の精度

JavaScript の数値は、整数であっても小数であっても、内部的には浮動小数点数として処理されます。浮動小数点数は、固定長のビット列で表現されるため、表現できる精度は限られています。 例えば、`0.1 + 0.2` の計算結果は、正確には `0.3` になりませんが、JavaScript では `0.30000000000000004` のような値が出力されることがあります。これは、浮動小数点数の精度 limitations に起因するものです。

大きな整数を扱う方法

JavaScript で大きな整数を扱う必要がある場合は、`BigInt` 型を使用することができます。`BigInt` は、任意の精度の整数を表すことができるデータ型です。

BigInt の使い方

`BigInt` リテラルは、数値の最後に `n` を付けることで作成できます。


const bigInt = 9007199254740992n;

`BigInt` を使用することで、`Number.MAX_SAFE_INTEGER` を超える大きな整数を正確に表現し、計算することができます。

まとめ

JavaScript の数値には上限があり、大きな整数を扱う場合には注意が必要です。`BigInt` を使用することで、精度を落とさずに大きな整数を扱うことができます。

参考資料

QA

Q1: JavaScript で表現できる最小値と最大値は?

A1: JavaScript で表現できる最小値は Number.MIN_VALUE、最大値は Number.MAX_VALUE という定数で定義されています。

Q2: BigInt はいつ使うべき?

A2: Number.MAX_SAFE_INTEGER を超える大きな整数を扱う場合、または正確な整数計算が必要な場合に BigInt を使用します。

Q3: BigIntNumber は相互に変換できる?

A3: BigIntNumber は明示的な型変換を行うことで相互に変換できます。ただし、精度が失われる可能性があるため注意が必要です。

その他の参考記事:JavaScript クラスの継承