概要:このチュートリアルでは、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'); // trueCode language: JavaScript (javascript)演算子
BigInt は、+、*、-、**、%、ビット演算子 (>>> (ゼロ埋め右シフト) を除く) をサポートしています。一項演算子 (+) はサポートしていません。
/ 演算子も整数で動作します。ただし、結果は小数桁を返しません。たとえば、
let result = 3n / 2n;
console.log(result); // 1n, not 1.5nCode language: JavaScript (javascript)比較
BigInt は Number と厳密には等しくありません (===)。
console.log(1n === 1); // falseCode 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); // trueCode 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を作成します。
このチュートリアルは役に立ちましたか?