Math 객체와 메서드
Math
객체는 수학 연산을 위한 내장 객체
로, 다양한 수학 상수와 메서드를 제공한다. 객체지만 생성자 함수로 사용할 수는 없으며, new Math()
처럼 인스턴스를 만들 수 없다.
js
typeof Math; // "object"
new Math(); // TypeError
Math 객체의 특징
- Math는 정적(static) 객체이다.
- 모든 메서드와 상수는
Math.
를 통해 접근한다. - 전역 객체이므로 어디서든 사용할 수 있다.
주요 수학 상수
상수 | 설명 | 값 예시 |
---|---|---|
Math.PI | 원주율 π | 3.141592... |
Math.E | 자연로그의 밑 e | 2.718... |
Math.SQRT2 | √2 | 1.414... |
Math.LN2 | ln(2) | 0.693... |
Math.LOG10E | log₁₀(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); // 랜덤 컬러 반환