BigInt는 자바스크립트에 내장된 객체로, Number 타입으로 안전하게 표현할 수 있는 최대 범위인 253 − 1(약 9,007조)보다 큰 정수를 나타내기 위해 사용됩니다.
BigInt가 필요한 이유
자바스크립트의 일반적인 Number 타입은 IEEE 754 배정밀도 부동소수점 방식을 기반으로 동작합니다. 그렇기 때문에 Number.MAX_SAFE_INTEGER(253 − 1 = 9,007,199,254,740,991)를 초과하는 정수는 정확성을 잃고 계산 오류가 발생할 수 있습니다.
ES2020에서 도입된 BigInt는 이러한 한계를 해결하며, 임의의 크기를 가진 정수를 정확하게 표현하고 연산할 수 있게 해줍니다.
BigInt 생성 방법
BigInt는 두 가지 방식으로 만들 수 있습니다.
- 정수 리터럴 뒤에
n을 붙이기 → 예:9007199254740991n BigInt()함수 호출하기 → 예:BigInt(9007199254740991)
예제 코드
다음은 자바스크립트에서 BigInt를 구현하는 예제입니다.
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
body {
font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
}
.result {
font-size: 20px;
font-weight: 500;
color: blueviolet;
}
</style>
</head>
<body>
<h1>JavaScript의 BigInt</h1>
<div class="result"></div>
<br />
<button class="Btn">클릭하세요</button>
<h3>위 버튼을 클릭하면 BigInt 숫자가 화면에 표시됩니다</h3>
<script>
let resEle = document.querySelector(".result");
let BtnEle = document.querySelector(".Btn");
BtnEle.addEventListener("click", () => {
resEle.innerHTML = BigInt(9007199254740991) + "<br>";
resEle.innerHTML += BigInt(Number.MAX_SAFE_INTEGER) + "<br>";
});
</script>
</body>
</html>
실행 결과

'클릭하세요' 버튼을 누르면 아래와 같이 BigInt 값이 출력됩니다.

정리
BigInt는 매우 큰 정수를 다뤄야 하는 금융 계산, 암호화, 고유 ID 처리 등에서 유용하게 활용됩니다. 단, BigInt와 일반 Number는 직접 혼합 연산이 불가능하므로 주의해서 사용해야 합니다.