참고: https://www.javascripttutorial.net/es-next/javascript-bigint/
이 포스트에서는 253 - 1 보다 큰 정수를 나타낼 수 있는 내장 객체인 BigInt 타입에 대해 알아보겠습니다.
JavaScript BigInt
ES2020에서는 253 - 1 보다 큰 정수를 표현하는 새로운 빌트인 객체인 BigInt를 도입했습니다. BigInt는 number, string, symbol, boolean, undefined, null과 같은 기본 타입입니다.
BigInt를 만들려면 다음의 예제 처럼 숫자 리터럴 뒤에 n을 추가하면 됩니다:
let bigInt = 9007199254740991n;
아니면 BigInt() 함수를 호출하면 됩니다:
let bigInt = BigInt(9007199254740991);
다음의 Number 객체의 계산 결과를 보겠습니다:
let x = Number.MAX_SAFE_INTEGER;
console.log(x);
x = x + 1;
console.log(x);
x = x + 1;
console.log(x);
위와 같은 계산을 BigInt로 하면 다음과 같습니다:
let x = BigInt(Number.MAX_SAFE_INTEGER);
console.log(x);
x = x + 1n;
console.log(x);
x = x + 1n;
console.log(x);
타입
다음의 예와 같이 BigInt의 타입은 bigint 입니다:
console.log(typeof BigInt(100));
console.log(typeof BigInt(100) === 'bigint');
연산자
BigInt는 >>>(0으로 채우는 오른쪽 시프트)를 제외한 +, *, -, **, %, 비트 연산자를 지원합니다. 단항 연산자(+)는 지원하지 않습니다. / 연산자는 정수와 사용할 수도 있는데 결과 값으로 소수점 자릿수를 반환하지는 않습니다. 다음의 예제를 보겠습니다:
let result = 3n / 2n;
console.log(result);
비교
BigInt는 Number와 엄격하게 같지(===) 않습니다.
하지만 == 연산자로 Number와 비교하면 같습니다.
BigInt와 Number는 <, <=, >, >= 로 비교할 수 있습니다.
조건
BigInt는 if 문 또는 논리 연산자 ||, &&, ! 과 같은 조건문에 쓰일 때 Boolean() 함수를 통해 boolean 값으로 변환됩니다.
let count = 0n;
if (count) {
console.log(true);
} else {
console.log(false);
}
정리
BigInt는 새로운 기본 타입으로 JavaScript의 Number 타입으로 안전하게 표현할 수 있는 가장 큰 숫자인 253 - 1 보다 큰 정수를 표현할 수 있습니다.
bigint를 생성하려면 숫자 리터럴 뒤에 n을 붙이거나 BigInt() 함수를 사용합니다.
관련 글
'dev > javascript' 카테고리의 다른 글
[javascript] 자바스크립트 전체 화면 (Fullscreen API) (9) | 2023.06.08 |
---|---|
[javascript] HTML 제곱 지수 위첨자 (sup) (7) | 2023.06.08 |
[javascript] 자바스크립트 객체 속성 지우기 (delete) (6) | 2023.06.07 |
[javascript] 자바스크립트 온라인/오프라인 확인 (navigator.onLine) (7) | 2023.06.01 |
[javascript] HTML 버튼 클릭 (11) | 2023.05.31 |
댓글