Skip to content

Math 객체와 메서드

Math 객체는 수학 연산을 위한 내장 객체로, 다양한 수학 상수와 메서드를 제공한다. 객체지만 생성자 함수로 사용할 수는 없으며, new Math()처럼 인스턴스를 만들 수 없다.

js
typeof Math; // "object"
new Math(); // TypeError

Math 객체의 특징

  • Math는 정적(static) 객체이다.
  • 모든 메서드와 상수는 Math.를 통해 접근한다.
  • 전역 객체이므로 어디서든 사용할 수 있다.

주요 수학 상수

상수설명값 예시
Math.PI원주율 π3.141592...
Math.E자연로그의 밑 e2.718...
Math.SQRT2√21.414...
Math.LN2ln(2)0.693...
Math.LOG10Elog₁₀(e)0.434...

반올림 관련 메서드

메서드설명예시
Math.round(x)반올림Math.round(4.7) → 5
Math.floor(x)내림Math.floor(4.7) → 4
Math.ceil(x)올림Math.ceil(4.1) → 5
Math.trunc(x)소수점 제거Math.trunc(4.9) → 4

절댓값과 부호 메서드

메서드설명예시
Math.abs(x)절댓값Math.abs(-7) → 7
Math.sign(x)부호 반환 (1, -1, 0)Math.sign(-3) → -1

제곱/루트/거듭제곱 메서드

메서드설명예시
Math.pow(x, y)x의 y제곱Math.pow(2, 3) → 8
Math.sqrt(x)제곱근Math.sqrt(9) → 3
Math.cbrt(x)세제곱근Math.cbrt(8) → 2
  • ** 연산자는 ES2016(ES7) 이후 도입된 거듭제곱 연산자이다.
    2 ** 3 === Math.pow(2, 3)true

최소/최대 메서드

메서드설명예시
Math.min(a, b, ...)최소값Math.min(3, 5, 1) → 1
Math.max(a, b, ...)최대값Math.max(3, 5, 1) → 5

난수 메서드

메서드설명예시
Math.random()0 이상 1 미만의 랜덤 실수Math.random() → 0.456...
  • 난수란 예측할 수 없는 무작위 숫자를 의미한다.
  • Math.random()은 실행할 때마다 0 이상 1 미만의 실수를 반환한다.

Math.random() 예시

js
// 1 이상 10 이하의 정수
const rand = Math.floor(Math.random() * 10) + 1;
console.log(rand); // 1이상 10이하의 랜덤 숫자 반환
  • Math.random(): 0 이상 1 미만 실수
  • * 10: 0 이상 10 미만
  • Math.floor(): 0 이상 9 이하 정수
  • + 1: 1 이상 10 이하 정수
js
// 배열에서 랜덤 요소 뽑기
const colors = ["red", "green", "blue", "yellow"];
const i = Math.floor(Math.random() * colors.length);
const randomColor = colors[i];

console.log(randomColor); // 랜덤 컬러 반환