자바스크립트에서는 수학 공식과 각종 상수를
Math객체에 저장한다.Math 객체에는 복잡한 수학 계산에 필요한 프로퍼티와 메서드들이 들어있다.
필요한 계산이 Math 객체에 구현되어 있다면 해당 수식을 직접 만들기 보다는 구현된 것을 이용하는 편이 더 좋다.
1. 상수 프로퍼티
-
Math.E: 자연로그의 밑수인 e의 값
-
Math.LN10: 10의 자연로그
-
Math.LN2: 2의 자연로그
-
Math.LOG2E: e의 밑수가 2인 로그(base 2)
-
Math.LOG10E: e의 밑수가 10인 로그(base 10)
-
Math.PI: π 값
-
Math.SQRT1_2: ½의 제곱근
-
Math.SQRT2: 2의 제곱근
2. 메서드
1) 최솟값, 최댓값
-
Math.min() -
Math.max()
Math.min() 메서드: 매개변수 중 가장 작은 숫자를 반환한다.(최솟값)
Math.max() 메서드: 매개변수 중 가장 큰 숫자를 반환한다.(최댓값)
var max = Math.max(1, 17, 4, 23, 24);
console.log(max); // 24
var min = Math.min(9. 6. 3. 1. 7. 5);
console.log(min); // 1
var array = [1, 2, 3, 4, 5, 6, 7, 8];
var max_array = Math.max.apply(Math, array);
console.log(max_array); // 8
2) 반올림
-
Math.ceil() -
Math.floor() -
Math.round()
Math.ceil() 메서드: 항상 가장 가까운 정수로 값을 올림 연산한다.
Math.floor() 메서드: 항상 가장 가까운 정수로 값을 내림 연산한다.
Math.round() 메서드: 반올림 메서드다. (0.5 이상이면 올림, 미만이면 내림 연산을 한다.)
// 항상 올림
console.log(Math.ceil(25.9)); // 26
console.log(Math.ceil(25.5)); // 26
console.log(Math.ceil(25.1)); // 26
// 항상 내림
console.log(Math.floor(25.9)); // 25
console.log(Math.floor(25.5)); // 25
console.log(Math.floor(25.1)); // 25
// 반올림(0.5 이상이면 올림 미만이면 내림)
console.log(Math.round(25.9)); // 26
console.log(Math.round(25.5)); // 26
console.log(Math.round(25.1)); // 25
3) Random
-
Math.random()
Math.random() 메서드: 0과 1사이의 난수를 반환하되 0이나 1을 반환하지는 않는다.
다음과 같이 Math.floor(Math.random() * 원하는 경우의 수)) + 그 중 가장 작은 값) 형태로 원하는 범위의 정수를 얻을 수 있다.
var num = Math.floor(Math.random() * 10 + 1); // 1과 10 사이의 값
4) 기타
-
Math.abs(num): num의 절댓값을 반환한다.
-
Math.exp(num): Math.E의 num 제곱을 반환한다.
-
Math.log(num): num의 자연로그를 반환한다.
-
Math.pow(num, power): num의 power 제곱을 반환한다.
-
Math.sqrt(num): num의 제곱 근을 반환한다.
-
Math.acos(x): x의 아크 코사인을 반환한다.
-
Math.asin(x): x의 아크 사인을 반환한다.
-
Math.atan(x): x의 아크 탄젠트를 반환한다.
-
Math.atan2(y, x): y/x의 아크 탄젠트를 반환한다.
-
Math.cos(x): x의 코사인을 반환한다.
-
Math.sin(x): x의 사인을 반환한다.
-
Math.tan(x): x의 탄젠트를 반환한다.
'자바스크립트 이야기 > 기본 강좌' 카테고리의 다른 글
| 소년코딩의 자바스크립트 강좌 19. this (3) | 2016.09.22 |
|---|---|
| 소년코딩의 자바스크립트 강좌 18. arguments 객체 (4) | 2016.09.22 |
| 소년코딩의 자바스크립트 강좌 16. Global, Window 객체 (0) | 2016.09.20 |
| 소년코딩의 자바스크립트 강좌 15. 원시 래퍼 타입 (0) | 2016.09.20 |
| 소년코딩의 자바스크립트 강좌 14. 함수의 다양한 종류 (0) | 2016.09.20 |