JavaScript Math 객체
JavaScript의 Math 객체는 수학적인 연산을 위한 함수와 상수를 위한 프로퍼티와 메서드를 제공합니다. 빌트인 객체이며 생성자 함수가 아니기 때문에 프로퍼티와 메서드는 static으로 제공됩니다.
1. Math 객체의 Property
1.1. Math.PI
Math 객체의 PI 프로퍼티는 원주율 값을 반환합니다.
1
2
3
4
|
// Math.PI
const pi = Math.PI;
console.log(pi); // 3.141592653589793
|
cs |
2. Math 객체의 Method
2.1. abs()
abs() 메서드는 파라미터로 전달된 숫자값의 절대값을 반환합니다. 반환되는 절대값은 0 또는 양수이며 그 외의 경우는 NaN으로 반환됩니다.
1
2
3
4
5
6
7
8
9
10
11
|
// Math.abs(x: number)
console.log(Math.abs(-1)); // 1
console.log(Math.abs('-1')); // 1
console.log(Math.abs('')); // 0
console.log(Math.abs([])); // 0
console.log(Math.abs(null)); // 0
console.log(Math.abs()); // NaN
console.log(Math.abs({})); // NaN
console.log(Math.abs('string')); // NaN
console.log(Math.abs(undefined)); // NaN
|
cs |
2.2. round()
round() 메서드는 파라미터로 전달된 숫자값의 소수점을 반올림한 정수를 반환합니다.
1
2
3
4
5
6
7
8
9
10
|
// Math.round(x: number)
console.log(Math.round(1)); // 1
console.log(Math.round(1.4)); // 1
console.log(Math.round(1.5)); // 2
console.log(Math.round(1.6)); // 2
console.log(Math.round(-1.4)); // -1
console.log(Math.round(-1.5)); // -1
console.log(Math.round(-1.6)); // -2
console.log(Math.round()); // NaN
|
cs |
2.3. ceil()
ceil() 메서드는 파라미터로 전달된 숫자값의 소수점을 올림한 정수를 반환합니다.
1
2
3
4
5
6
7
8
9
10
|
// Math.ceil(x: number)
console.log(Math.ceil(1)); // 1
console.log(Math.ceil(1.4)); // 2
console.log(Math.ceil(1.5)); // 2
console.log(Math.ceil(1.6)); // 2
console.log(Math.ceil(-1.4)); // -1
console.log(Math.ceil(-1.5)); // -1
console.log(Math.ceil(-1.6)); // -1
console.log(Math.ceil()); // NaN
|
cs |
2.4. floor()
floor() 메서드는 파라미터로 전달된 숫자값의 소수점을 내림한 정수를 반환합니다.
1
2
3
4
5
6
7
8
9
10
|
// Math.floor(x: number)
console.log(Math.floor(1)); // 1
console.log(Math.floor(1.4)); // 1
console.log(Math.floor(1.5)); // 1
console.log(Math.floor(1.6)); // 1
console.log(Math.floor(-1.4)); // -2
console.log(Math.floor(-1.5)); // -2
console.log(Math.floor(-1.6)); // -2
console.log(Math.floor()); // NaN
|
cs |
2.5. sqrt()
sqrt() 메서드는 파라미터로 전달된 숫자값의 제곱근을 반환합니다.
1
2
3
4
5
6
7
8
9
|
// Math.sqrt(x: number)
console.log(Math.sqrt(0)); // 0
console.log(Math.sqrt(1)); // 1
console.log(Math.sqrt(2)); // 1.4142135623730951
console.log(Math.sqrt(4)); // 2
console.log(Math.sqrt(9)); // 3
console.log(Math.sqrt(-10)); // NaN
console.log(Math.sqrt()); // NaN
|
cs |
2.6. random()
random() 메서드는 0 이상 1 미만의 실수를 랜덤으로 반환합니다.
1
2
3
4
5
6
7
|
// Math.random()
console.log(Math.random()); // 0.8461803944936506
// 1 ~ 10 사이의 랜덤 정수 구하기
const randomNumber = Math.floor((Math.random() * 10) + 1);
console.log(randomNumber); // 9
|
cs |
2.7. pow()
pow() 메서드는 파라미터로 전달된 숫자값을 거듭제곱한 결과를 반환합니다. 첫번째 파라미터는 밑, 두번째 파라미터는 지수로 전달됩니다.
1
2
3
4
5
6
7
8
9
|
// Math.pow(x: number, y: number)
console.log(Math.pow(2, 8)); // 256
console.log(Math.pow(2, -8)); // 0.00390625
console.log(Math.pow(2, 0)); // 1
console.log(Math.pow(0, 2)); // 0
console.log(Math.pow(-2, 0)); // 1
console.log(Math.pow(-2, 2)); // 4
console.log(Math.pow()); // NaN
|
cs |
2.8. max()
max() 메서드는 파라미터로 전달된 숫자값들 중에서 가장 큰 수를 반환합니다. 배열을 파라미터로 전달할 경우에는 전개 문법(스프레드 문법)을 사용해주면 됩니다.
1
2
3
4
5
6
|
// Math.max(...values: number[])
console.log(Math.max(1)); // 1
console.log(Math.max(1, 2, 3)); // 3
console.log(Math.max()); // -Infinity
console.log(Math.max(...[1, 2, 3])); // 3
|
cs |
2.9. min()
min() 메서드는 파라미터로 전달된 숫자값들 중에서 가장 작은 수를 반환합니다. max() 메서드와 마찬가지로 배열을 파라미터로 전달할 경우에는 전개 문법(스프레드 문법)을 사용해줍니다.
1
2
3
4
5
6
|
// Math.min(...values: number[])
console.log(Math.min(1)); // 1
console.log(Math.min(1, 2, 3)); // 1
console.log(Math.min()); // Infinity
console.log(Math.min(...[1, 2, 3])); // 1
|
cs |
이상으로 JavaScript의 Math 객체에 대해 알아봤습니다.
※ Reference
- 이웅모 지음, 『모던 자바스크립트 Deep Dive』, 위키북스(2020), p561 ~ p565. 29장 Math
- poiemaweb.com, 수학 상수와 함수를 위한 Math 객체, https://poiemaweb.com/js-math