→
BigInt はで、の bigint 値、すなわち number プリミティブで表すことができない数を、表現したり操作したりするために使用します。
BigInt 値は、単に BigInt と呼ばれることもありますが、bigint です。整数リテラルの末尾に「n」を追加するか、BigInt() コンストラクターを呼び出し、整数値または文字列値を与えることで生成することができます (ただし new 演算子なしで)。
D=9007199254740991n;
D=BigInt(9007199254740991); //=[bigint]:9007199254740991
D=BigInt("9007199254740991"); //=[bigint]:9007199254740991
D=BigInt("0x1fffffffffffff"); //=[bigint]:9007199254740991
D=BigInt("0o377777777777777777"); //=[bigint]:9007199254740991
D=BigInt("0b11111111111111111111111111111111111111111111111111111"); //=[bigint]:9007199254740991
BigInt はいくつかの点で Number と似ていますが、重要ないくつかの点が異なります。組み込みの Math オブジェクト内のメソッドでは利用できず、演算で Number の値と混ぜることができません。同じ型に統一する必要があります。ただし、BigInt を Number へ変換する際には精度が落ちることがあるので、相互に変化する場合には注意が必要です。
¶省く
¶省く
// 渡された BigInt が素数であった場合は true を返します
function isPrime(p) {
for (let i = 2n; i * i <= p; i++) {
if (p % i === 0n) return false;
}
return true;
}
// 引数として BigInt 値を取り、nth 番目の素数を BigInt 値として返します。
function nthPrime(nth) {
let maybePrime = 2n;
let prime = 0n;
while (nth >= 0n) {
if (isPrime(maybePrime)) {
nth--;
prime = maybePrime;
}
maybePrime++;
}
return prime;
}
D=nthPrime(20n); //=73。[bigint]:73