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 |