JS - Number Object


JS는 IEEE 754에 정의된 64bit 부동소수점으로 정수와 실수 구분 없이 수를 처리한다.
IEEE 부동소수점

숫자의 개념적 크기와 상관없이 같은 메모리를 크기가 할당됨
TypedArray Object로 메모리크기를 지정할 수는 있다.

Number 데이터 구성

자세한 계산 방식 및 정의는 상기 주소를 통해서 확인이 가능하며, 아래와 같은 분배되어 있는 구조이다.

  • 사인 비트
    • 63 index: 1 bit
    • 0 일 경우 양수, 1 일 경우 음수
  • 지수
    • 52 ~ 62 index: 11 bit
  • 가수
    • 0 ~ 51 index: 52 bit + 사인 비트

Number 상수

EPSILON의 경우 사칙연산에서 발생하는 오차와 0 / 0의 경우에 방어 코딩으로 사용할 수 있다.

이름 의미
Number.MAX_SAFE_INTEGER 지수를 사용하지 않고 나타낼수 있는 최대 값 2의 53승 - 1
Number.MIN_SAFE_INTEGER 지수를 사용하지 않고 나타낼수 있는 최소 값 -(2의 53승 - 1)
Number.EPSILON 아주 작은 값 😓 2의 -52승

Number 함수

글로벌 오브젝트에도 작성되어 있는 함수들이 있으나 글로벌 오브젝트의 함수의 경우 파마리터를 값을 Number로 형변환을 하여 체크한다.

형태 파라미터 반환값
Number.isNan() 비교 대상 NaN이면 true, 아니면 false
Number.isInteger() 비교 대상 정수이면 true, 아니면 false
Number.isSafeInteger() 비교 대상 지수를 쓰지 않은 정수이면 true, 아니면 false
Number.isFinite() 비교 대상 유한한 값이면 true, 아니면 false