JavaScript Math

버터·2025년 6월 2일

Math

수학 관련 기능을 제공하는 내장 객체

1. Math.abs(number)

숫자의 절댓값을 반환한다.

  console.log(Math.abs(-5)); // 5 절대값

2. Math.round(number)

숫자를 반올림한다.

  console.log(Math.round(4.6)); // 5 소수 첫째자리에서 반올림

3. Math.ceil(number)

숫자를 올림한다. ⇒ 더 큰 숫자를 반환한다.

  console.log(Math.ceil(4.1)); // 5 소수 첫째자리에서 올림

4. Math.floor(number)

숫자를 내림한다. ⇒ 더 작은 숫자를 반환한다.

  console.log(Math.floor(4.9)); // 4 소수 첫째자리에서 내림
  console.log(Math.floor(-4.9)); // -5 소수 첫째자리에서 내림

5. Math.trunc(number)

숫자의 소수를 버린다. ⇒ 소수를 뗀 수를 반환한다.

  console.log(Math.trunc(4.9)); // 4 소수 버림
  console.log(Math.trunc(-4.9)); // -4 소수 버림

6. Math.sign(number)

숫자의 부호를 반환한다.

  • 양수: 1
  • 음수: -1
  • 0: 0
  console.log(Math.sign(-10)); // -1 부호, 양수: 1, 음수: -1, 0: 0

7. Math.max(…values)

인자값들 중 최댓값을 반환한다.

  console.log(Math.max(1, 5, 3)); // 5

8. Math.min(…values)

인자값들 중 최솟값을 반환한다.

  console.log(Math.min(1, 5, 3)); // 1

9. Math.random()

0 이상 1 미만의 난수를 반환한다.

(() => {
  // FIXME 주사위를 던져서 1부터 6까지의 숫자 중 하나를 랜덤으로 반환하는 함수
  function rollDice(): number {
    // 범위가 0~5가 되므로 1을 더함
    return Math.floor(Math.random() * 6) + 1;
  }

  console.log(rollDice()); // 1부터 6까지의 숫자 중 하나 출력
  console.log(rollDice()); // 1부터 6까지의 숫자 중 하나 출력
  console.log(rollDice()); // 1부터 6까지의 숫자 중 하나 출력

  // 로또 번호를 무작위로 뽑는 함수
  function generateLottoNumbers(): number[] {
    const numbers: number[] = [];
    while (numbers.length < 6) {
      const randomNum = Math.floor(Math.random() * 45) + 1; // 1부터 45까지의 숫자
      if (!numbers.includes(randomNum)) {
        numbers.push(randomNum); // 중복되지 않으면 추가
      }
    }
    return numbers.sort((a, b) => a - b); // 오름차순 정렬
  }

  console.log(generateLottoNumbers()); // 로또 번호 출력
})();

10. Math.pow(number1, number2)

number1를 number2만큼 거듭제곱한 값을 반환한다.

  console.log(Math.pow(2, 3)); // 8 거듭제곱

11. Math.sqrt(number)

숫자의 제곱근을 반환한다.

  console.log(Math.sqrt(9)); // 3 제곱근

12. Math.PI

파이 값을 반환한다.

  console.log(Math.PI); // 3.141592653589793

13. 삼각함수

  • Math.sin()
  • Math.cos()
  • Math.tan()
profile
프론트엔드 개발자를 꿈꾸는 (구)퍼블리셔

0개의 댓글