
이러한 특징 때문에 정수처럼 보이는 숫자도 사실은 부동소수점 형태로 저장.
예를 들어, 10은 내부적으로 10.0과 같이 처리.
안전한 정수의 범위
최대 안전 정수: 2^53 - 1
최소 안전 정수: -(2^53 - 1)
console.log(Number.MAX_SAFE_INTEGER); // 9007199254740991
console.log(Number.MIN_SAFE_INTEGER); // -9007199254740991
let maxSafe = Number.MAX_SAFE_INTEGER;
console.log(maxSafe); // 9007199254740991
let beyondSafeAgain = maxSafe + 2;
console.log(beyondSafeAgain); // 9007199254740992 <- 2가 증가하였지만, 정확한 표현이 되지 못함
const largeNumber = 9007199254740991n; // 숫자 뒤에 'n'을 붙여 BigInt 타입으로 선언
console.log(largeNumber); // 9007199254740991n
const a = BigInt(Number.MAX_SAFE_INTEGER) + 1n;
console.log(a); // 9007199254740992n
const b = BigInt(Number.MAX_SAFE_INTEGER) + 2n;
console.log(b); // 9007199254740993n
BigInt는 Number 타입과 연산할 수 없기 때문에 주의해야
같은 BigInt 타입끼리만 연산이 가능