概要:このチュートリアルでは、253 – 1 より大きい整数を表すことができる組み込みオブジェクトであるBigInt
型について学びます。
JavaScript BigInt の紹介
ES2020 では、253 - 1
より大きい整数を表すことができる BigInt
という新しい組み込みオブジェクトが導入されました。
bigint
は、number
、string
、symbol
、boolean
、undefined
、null
のようなプリミティブ型です。
BigInt
を作成するには、数値リテラルの末尾に n
を付加します。たとえば、
let bigInt = 9007199254740991n;
Code language: JavaScript (javascript)
または、関数 BigInt()
を呼び出すこともできます。
let bigInt = BigInt(9007199254740991);
Code language: JavaScript (javascript)
Number
を使用した次の計算例をご覧ください。
let x = Number.MAX_SAFE_INTEGER;
x = x + 1; // 9007199254740992
x = x + 1; // 9007199254740992 (same as above)
Code language: JavaScript (javascript)
そして、BigInt
を使用した計算例をご覧ください。
let x = BigInt(Number.MAX_SAFE_INTEGER);
x = x + 1; // 9007199254740992n
x = x + 1; // 9007199254740993n (correct now)
Code language: JavaScript (javascript)
型
BigInt
の型は bigint
です。たとえば、
console.log(typeof bigInt); // bigint
console.log(typeof BigInt(100) === 'bigint'); // true
Code language: JavaScript (javascript)
演算子
BigInt
は、+
、*
、-
、**
、%
、ビット演算子 (>>>
(ゼロ埋め右シフト) を除く) をサポートしています。一項演算子 (+
) はサポートしていません。
/
演算子も整数で動作します。ただし、結果は小数桁を返しません。たとえば、
let result = 3n / 2n;
console.log(result); // 1n, not 1.5n
Code language: JavaScript (javascript)
比較
BigInt
は Number
と厳密には等しくありません (===
)。
console.log(1n === 1); // false
Code language: JavaScript (javascript)
ただし、==
演算子を使用すると、BigInt
は数値と緩やかに等しくなります。
console.log(1n == 1); // true
Code language: JavaScript (javascript)
<
、<=
、>
、>=
を使用して、BigInt
と Number
を比較できます。
console.log(1n < 2); // true
console.log(2n > 1); // true
console.log(2n >= 2); // true
Code language: JavaScript (javascript)
条件
BigInt
は、if
文や論理演算子 (||
、&&
、!
) などの条件の中で、Boolean()
関数を介して Boolean
に変換されます。言い換えれば、これらの場合は Number
と同様に動作します。例えば、
let count = 0n;
if(count) {
console.log(true);
} else {
console.log(false);
}
Code language: JavaScript (javascript)
概要
BigInt
は、JavaScript がnumber
型で確実に表現できる最大の数値である253 - 1
よりも大きい整数を表すことができる新しいプリミティブ型です。- リテラル整数に
n
を付加するか、BigInt()
関数を使用してbigint
を作成します。
このチュートリアルは役に立ちましたか?