JUNEee

[JavaScript] 자바스크립트 Number 자료형 본문

FE/자바스크립트

[JavaScript] 자바스크립트 Number 자료형

JUNEee 2025. 6. 3. 15:42
반응형

Number 의 특징

  • 자바스크립트에서는 숫자 자료형이 매우 넒은 부분을 포함한다.
    일반적으로 java 와 같이 타입이 고정되어있는 언어의 경우 숫자형 타입으로
  1. int
  2. long
  3. byte
  4. short
    등이 존재하는 반면 자바스크립트의 경우 이러한 숫자의 형태와 상관 없이 모든 형태를 허용하게 된다.

아래 예제를 보면 let 으로 선언된 result라는 변수에 정수형, 실수형, 2진수값, 16진수값 등 여러 숫자형 타입이 들어갈 수 있으며, 모두 10진수로 변환되어 출력됨을 알 수 있다.

let result = 3
console.log(result); //3
//
result = 3.14
console.log(result); //3.14
//
result = 0b0011;
console.log(result); //3
//
result = 0x3
console.log(result); //3
.
.
.

숫자형의 특수한 상태를 표현하는 Infinity / NaN

  • 숫자의 형태에는 무한대이거나 또는 허용되지 않는 값도 존재할 수 있다. 이것들을 각각 Infinity, NaN 이라고 표현하게 되는데
    [Infinity] : 단어 뜻 그대로 무한대의 수를 의미하게 된다.
    아래 예제를 참고해보자
    let result = 3 / 0
    console.log(result); //Infinity
    예제에서는 result에 3을 0으로 나눈 값을 대입하고 있으며 3을 0으로 나눈 값은 무한대이므로 해당 변수의 값을 출력해보면 Infinity 가 출력됨을 알 수 있다.
    [NaN(Not a Number)] : 숫자가 아닌 값을 의미한다.
    아래 예제를 참고해보자
    let result = 3 / "십";
    console.log(result); //NaN
    3을 숫자 10이 아닌 문자 "십"으로 나누었다. 숫자를 문자로 나누었을 때 이는 수학적으로 정의되지 않은 연산이므로 NaN이 반환된다.
  • 음의 무한대 -Infinity
    만약 3이 아닌 -3 음수를 나누게 되면 결과값은 음의 무한대가 나온다.
    let result = -3 / 0;
    console.log(result); // -Infinity
  • NaN 은 자기 자신과도 같지 않다.
    result에 NaN 을 대입하였다 이후 result 값과 NaN을 비교 연산하였고 결과는 false 즉 NaN 은 그 자체로 유일한 값이다.
    따라서 result의 값이 NaN인지를 확인해야할 경우 Number.isNaN(result) 을 사용하는것이 적절하다.
    let result = NaN;
    console.log(result === NaN); // false
    console.log(result == NaN);  // false
    // NaN 확인하는 방법
    console.log(Number.isNaN(result));  // true
반응형