숫자형 메서드

이서림·2024년 7월 30일

JavaScript

목록 보기
9/28

숫자 (Number)

숫자형 메서드

  1. parseInt()

    • 문자열에서 읽을 수 있는 숫자를 추출하여 정수로 변환.
    • 숫자가 아닌 문자가 나오면 변환을 멈추고, 그 전까지 수집된 숫자를 반환.
    • 문자열의 시작이 숫자로 변환이 불가능한 경우 NaN을 반환.
    • 인자가 표현된 진수법을 인자로 전달할 수 있음.
    parseInt("36"); // 36
    parseInt("101", 2); //5 (2진수로 취급하여 변환)
    parseInt("36.5px"); // 36
    parseInt("36px"); // 36
    parseInt("width: 36px"); // NaN
  2. parseFloat()

    parseInt와 마찬가지로 문자열에서 읽을 수 있는 숫자를 가져와 숫자형으로 변경. 부동 소숫점 숫자 즉, 실수로 변환.

    parseFloat("36.5"); // 36.5
    parseFloat("36.5px"); // 36.5
    parseFloat("14.5.6px"); // 14.5
  3. Number.isInteger()

    인자가 정수인지 판별.

    Number.isInteger(0); //true
    Number.isInteger(1); //true
    

    Number.isInteger(0.1); //false (소수)

  4. isNaN() / Number.isNaN()

    인자가 NaN인지 판단. Number.isNaN은 형 변환이 일어나지 않고 엄격하게 판단, isNaN은 형 변환이 일어남.

    isNaN(undefined);  // true (undefined는 숫자로 변환할 수 없는 값)
    isNaN({});         // true (객체, 숫자로 변환할 수 없는 값)
    isNaN("hello");    // true (문자열, 숫자로 변환할 수 없는 값)
    

    Number.isNaN(undefined); // false
    Number.isNaN({}); // false
    Number.isNaN("hello"); // false

  5. toFixed

    숫자의 소수점 이하의 자리수를 지정. 지정된 소수점 이하 자릿수를 반올림하여 문자열로 반환. 값이 없거나 0이면 정수를 반환.

    const pi = 3.14159;
    

    console.log(pi.toFixed()); // 3
    console.log(pi.toFixed(2)); // 3.14
    console.log(pi.toFixed(4)); // 3.1416
    console.log(pi.toFixed(10)); // 3.1415920000

  6. Math 객체를 이용한 연산

    자바스크립트가 기본적으로 가지고 있는 Math 객체를 이용하면 좀 더 다양한 연산이 가능합니다.

    console.log(`Math.PI : ${Math.PI}`); //3.141592653589793
    

    console.log(</span><span class="token string">Math.floor(4.7): </span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span>Math<span class="token punctuation">.</span><span class="token function">floor</span><span class="token punctuation">(</span><span class="token number">4.7</span><span class="token punctuation">)</span><span class="token interpolation-punctuation punctuation">}</span></span><span class="token template-punctuation string">); //4 (내림)
    console.log(</span><span class="token string">Math.round(4.7): </span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span>Math<span class="token punctuation">.</span><span class="token function">round</span><span class="token punctuation">(</span><span class="token number">4.7</span><span class="token punctuation">)</span><span class="token interpolation-punctuation punctuation">}</span></span><span class="token template-punctuation string">); //5 (반올림)
    console.log(</span><span class="token string">Math.ceil(4.7): </span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span>Math<span class="token punctuation">.</span><span class="token function">ceil</span><span class="token punctuation">(</span><span class="token number">4.7</span><span class="token punctuation">)</span><span class="token interpolation-punctuation punctuation">}</span></span><span class="token template-punctuation string">); //5 (올림)
    console.log(</span><span class="token string">Math.trunc(4.7): </span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span>Math<span class="token punctuation">.</span><span class="token function">trunc</span><span class="token punctuation">(</span><span class="token number">4.7</span><span class="token punctuation">)</span><span class="token interpolation-punctuation punctuation">}</span></span><span class="token template-punctuation string">); //4 (정수부)

    console.log(</span><span class="token string">Math.pow(2, 8): </span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span>Math<span class="token punctuation">.</span><span class="token function">pow</span><span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">8</span><span class="token punctuation">)</span><span class="token interpolation-punctuation punctuation">}</span></span><span class="token template-punctuation string">); //256 (첫번째인자를 두번째인자로 거듭제곱)
    console.log(</span><span class="token string">Math.sqrt(64): </span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span>Math<span class="token punctuation">.</span><span class="token function">sqrt</span><span class="token punctuation">(</span><span class="token number">64</span><span class="token punctuation">)</span><span class="token interpolation-punctuation punctuation">}</span></span><span class="token template-punctuation string">); //8 (제곱근)
    console.log(</span><span class="token string">Math.abs(-5): </span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span>Math<span class="token punctuation">.</span><span class="token function">abs</span><span class="token punctuation">(</span><span class="token operator">-</span><span class="token number">5</span><span class="token punctuation">)</span><span class="token interpolation-punctuation punctuation">}</span></span><span class="token template-punctuation string">); //5 (절대값)

    console.log(</span><span class="token string">Math.random(): </span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span>Math<span class="token punctuation">.</span><span class="token function">random</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token interpolation-punctuation punctuation">}</span></span><span class="token template-punctuation string">); //난수

    console.log(</span><span class="token string">Math.max(10, 20, 30, 40): </span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span>Math<span class="token punctuation">.</span><span class="token function">max</span><span class="token punctuation">(</span><span class="token number">10</span><span class="token punctuation">,</span> <span class="token number">20</span><span class="token punctuation">,</span> <span class="token number">30</span><span class="token punctuation">,</span> <span class="token number">40</span><span class="token punctuation">)</span><span class="token interpolation-punctuation punctuation">}</span></span><span class="token template-punctuation string">); //40 (가장 큰 숫자)
    console.log(</span><span class="token string">Math.min(10, 20, 30, 40): </span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span>Math<span class="token punctuation">.</span><span class="token function">min</span><span class="token punctuation">(</span><span class="token number">10</span><span class="token punctuation">,</span> <span class="token number">20</span><span class="token punctuation">,</span> <span class="token number">30</span><span class="token punctuation">,</span> <span class="token number">40</span><span class="token punctuation">)</span><span class="token interpolation-punctuation punctuation">}</span></span><span class="token template-punctuation string">); //10 (가장 작은 숫자)

BigInt

  • 일반적인 숫자 타입(Number)은 정수와 실수를 포함하며, 정수의 경우 일정 범위 내에서만 정확성을 보장.
  • BigInt는 매우 큰 정수를 안전하게 다룰 수 있으며, 정확성이 보장. 숫자 끝에 n을 붙여서 표현.
// 정확성이 보장되지 않는 숫자 타입
9007199254740991 + 1 
9007199254740991 + 2
9007199254740991 + 3
9007199254740991 + 4

// bigint
9007199254740991n + 1n
9007199254740991n + 2n
9007199254740991n + 3n
9007199254740991n + 4n

  • 동일한 타입끼리의 연산이 필요
5n / 2n; // 2n 

5n / 2; // TypeError

Number(5n) / 2; // 2.5 (5/2)
5n / BigInt(2); // 2n (5n/2n)

  • 숫자형에서 안전하게 표현할 수 없는 크기의 값을 BigInt로 표현할 때는 문자형 으로 입력
BigInt(9007199254740993)
BigInt(9007199254740995)

BigInt('9007199254740993')
BigInt('9007199254740995')

불리언(Boolean)

  • true 또는 false
  • 조건문이나 반복문 등에서 주로 사용됨
  • Truthy는 불리언으로 변환 시 true로 평가되는 값. → true, 0을 제외한 모든 숫자, 빈 문자열을 제외한 모든 문자열, 모든 객체
  • Falsy는 불리언으로 변환 시 false로 평가되는 값. → false, 0, “” (빈 문자열), null, undefined, NaN

undefined

  • 변수가 선언되었지만 값이 할당되지 않은 상태

null

  • 의도적으로 변수의 값이 없음을 나타내기 위해 사용

symbol

  • 고유하고 변경 불가능한 식별자를 만드는데 사용
  • 주로 객체의 속성 키 값으로 사용되며 속성 간의 충돌을 방지
    let sym1 = Symbol("name");
    let sym2 = Symbol("name");
    console.log(sym1 === sym2); // false
profile
꾸준한 열정으로 나아가는 프론트엔드 개발자

0개의 댓글