Study JavaScript 0506 - 1hr 원시값: 숫자형

변승훈·2022년 5월 10일
0

Study JavaScript

목록 보기
15/43

원시값의 메소드

원시 값은 객체가 아니다.
원시 값: string, number, bigint, boolean, symbol, null, undefined

숫자형

숫자를 입력하는 다양한 방법

직접 입력

    let billion = 1000000000;

e를 사용: e는 왼쪽의 수에 e 오른쪽에 있는 수 만큼의 10의 거듭제곱을 하는 효과가 있다.

    billion = 1e9;  // 1000000000

    console.log(7.3e9)  // 7,300,000,000

16진수, 2진수, 8진수

  • 16진수: 0x
  • 8진수: 0o
  • 2진수: 0b

toString(base)

num.toString(base) 메서드는 base진법으로 num을 표현한 후, 이를 문자형으로 변환해 반환한다.
base는 2~36까지 쓸 수 있고 기본 값은 10이다.
n진수라 생각하면 되고 보통 16(문자 인코딩 등 표현 시 사용), 2(비트 연산 디버깅에 주로 사용), 36( url을 줄이는 것과 같이 숫자로 된 긴 식별자를 짧게 줄일 때 유용)을 사용한다.

    let num = 255;

    console.log(num.toString(16));
    console.log(num.toString(2));
    console.log(num.toString(8));

어림수 구하기

숫자를 다룰 때 가장 많이 사용되는 연산 중 하나이다.

  • Math.floor: 소수점 첫 째 자리에서 내림(버림)
  • Math.ceil: 소수점 첫 째 자리에서 올림
  • Math.round: 소수점 첫 째 자리에서 반올림
  • Math.trunc: 소수를 무시하고 표기를 하지 않음

부정확한 계산

toFixed(n) 메소드를 이용한다.
toFixed(n): 원하는 자리(n)에서숫자를 반올림 할 수 있다.
toFixed(n)메소드는 항상 문자열을 반환하기에 숫자형으로 강제 형변환으로 마무리 해줘야 한다.

    let sum = 0.1 + 0.2;
    console.log( +sum.toFixed(2) ); // 0.3

isNaN과 isFinite

  • Infinity-Infinity: 그 어떤 숫자보다 큰 혹은 작은 특수 숫자 값

  • NaN: 에러를 나타내는 값
    두 특수 숫자는 숫자형에 속하지만 '정상적인'숫자가 아니기 때문에 정상적인 숫자와 구분하기 위한 특별한 함수가 존재한다.

  • isNaN(value): 인수를 숫자로 변환한 다음 NaN인지 테스트함

    console.log(isNaN(NaN)); // true
    console.log(isNaN("str")); // true 
    //특이사항: NaN은 자기 자신을 포함하여 그 어떤 값과도 같지 않다. 
    console.log(NaN === NaN);  // false

    // `isFinite(value)`: 인수를 숫자로 변환하고 변환한 숫자가 `NaN/Infinity/-Infinity`가 아닌 일반 숫자인 경우 true를 반환함
    console.log( isFinite("15") ); // true
    console.log( isFinite("str") ); // false, NaN이기 때문
    console.log( isFinite(Infinity) ); // false, Infinity이기 때문

parseInt와 parseFloat

두 함수는 불가능할 때까지 문자열에서 숫자를 읽는다. 숫자를 읽는 도중 오류가 발생하면 이미 수집된 숫자를 반환한다. parseInt는 정수, parseFloat는 부동 소수점 숫자를 반환한다.

    console.log( parseInt('100px') ); // 100
    console.log( parseFloat('12.5em') ); // 12.5

    console.log( parseInt('12.3') ); // 12, 정수 부분만 반환
    console.log( parseFloat('12.3.4') ); // 12.3, 두 번째 점에서 숫자 읽기를 멈춤

읽을 수 있는 숫자가 없을 때 NaN을 반환한다.

console.log( parseInt('a123') );  // NaN, a는 숫자가 아님

기타 수학 함수

  • Math.random(): 0 ~ 1 사이의 난수를 반환한다.(1제외)
  • Math.max(a, b, c...) / Math.min(a, b, c...): 인수 중 최대/최소 값을 반환한다.
  • Math.pow(n, power): n을 power번 거듭제곱한 값을 반환한다.
    console.log( Math.random() );
    console.log( Math.max(3, 5, -10, 0, 1) ); // 5
    console.log( Math.min(1, 2) ); // 1
    console.log( Math.pow(2, 10) ); // 2의 10제곱 = 1024
profile
잘 할 수 있는 개발자가 되기 위하여

0개의 댓글