主な内容の要点
長整数リテラル(BigInt リテラル)の書き方
- 通常の数値リテラルと同様に書くが、末尾に
nを付ける
let num = 854n;
JavaScript- 10進以外にも、16進・8進・2進のリテラルが使える(こちらも末尾に
nを付ける)
let num1 = 0xB6n; // 16 進数
let num2 = 0o266n; // 8 進数
let num3 = 0b10110110n; // 2 進数
JavaScript- 小数点を持つ数値(浮動小数点数)は BigInt では記述できない。
- 例:
7.34nのような記述は構文エラーになる。
- 例:
BigInt(...)コンストラクタを使って、通常の数値から BigInt に変換できる。
let num = BigInt(1024);
console.log(num); // → 1024n
JavaScript(ただし、この方法はリテラル記法とは異なる手段)
なぜ BigInt(長整数リテラル)が必要か
- 通常の JavaScript 数値(
Number型)は、安全に扱える最大の整数が2^53 - 1(= 9007199254740991) に制限されている。 - 例えば、
let num = Number.MAX_SAFE_INTEGER;
console.log(num + 1); // → 9007199254740992
console.log(num + 2); // → 9007199254740992 ← 正しく加算されない
JavaScriptといった不整合が起こることがある。
- 一方、BigInt(長整数リテラル)を使えば、任意の大きさの整数を安全に扱うことが可能。
let num = 9007199254740991n;
console.log(num + 1n); // → 9007199254740992n
console.log(num + 2n); // → 9007199254740993n
JavaScriptこのように期待通りの演算結果を得られる。

