BigInt

BigInt 프리미티브는 상대적으로 새로 추가된 범위 밖의 숫자에 대한 수학 연산을 허용하는 JavaScript Number에서 허용됨 BigInt를 만들려면 숫자 끝에 n를 추가합니다. 리터럴을 사용하거나 정수 또는 숫자 문자열 값을 BigInt() 함수에 전달합니다.

const myNumber = 9999999999999999;
const myBigInt = 9999999999999999n;

typeof myNumber;
> "number"

typeof myBigInt;
> "bigint"

myNumber;
> 10000000000000000

myBigInt;
> 9999999999999999n

이 예에서 9999999999999999Number로 안전하게 표현되므로 반올림 오류가 발생합니다.

BigInt 값이 Number 객체로 메서드와 속성을 상속하지 않음 JavaScript의 내장 Math 메서드와 함께 사용할 수 없습니다. 객체를 제공합니다 가장 중요한 점은, BigQuery에서 BigInt와 Number 프리미티브를 혼합해서 표준 산술 연산의 예입니다.

9999999999999999n + 5
> Uncaught TypeError: can't convert BigInt to number

BigInt로 산술을 수행하려면 두 피연산자를 모두 BigInt 값으로 정의해야 합니다.

console.log( 9999999999999999 + 10 );  // Off by one
> 10000000000000010

console.log( 9999999999999999n + 10n );
> 10000000000000009n