
Number.MAX_SAFE_INTEGER는 자바스크립트에서 사용 가능한
"가장 큰 안전한 정수값"으로 이 값은 9007199254740991이다.
여기서 "가장 큰 안전한 정수 값"이라는 용어는
자바스크립트에서 숫자는 부동 소수점 형식(floating-point format)으로 표현되는데, 부동 소수점 형식으로 표현되는 숫자 중에서 정수로 안전하게 표현할 수 있는 최대 값을 나타낸다.
그래서 9007199254740991 값을 넘어가면 부동 소수점 형식의 한계로 인해 정수 값이 정확하게 표현되지 않을 수 있고 이 값을 넘어서면 정수 값이 근사치로 표현될 수 있다.
const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER;
console.log(MAX_SAFE_INTEGER); // 9007199254740991
const MAX_SAFE_INTEGER_SUM = MAX_SAFE_INTEGER + 4;
console.log(MAX_SAFE_INTEGER_SUM); // 9007199254740996
위와 같이 Number.MAX_SAFE_INTEGER의 값에 4를 더했을때 9007199254740991 + 4의 값인 9007199254740995가 아닌 9007199254740996 값이 나오는 것을 확인할 수 있다.
Number.MAX_SAFE_INTEGER는 부동 소수점 형식에서 정확하게 표현할 수 있는 가장 큰 정수이지만, 그 이상의 큰 수를 표현하려고 하면 근사치로 표현되어 9007199254740996 값이 나오게 되는 것이다.