[JavaScript (10)] Javascript Math 객체, Math 메소드(Math.random, Math.round 등)
안녕하세요. 갓대희 입니다. 이번 포스팅은 [ 자바스크립트 객체 - Math ] 입니다. : )
0. Math 객체
- Math 객체는 수학 상수와 함수를 위한 프로퍼티, 메소드를 미리 구현해 놓은 빌트인 객체 이다. - 생성자(constructor)가 존재하지 않는다. Static 프로퍼티와 메소드만 제공기 때문에 인스턴스를 생성할 필요 없이 바로 사용 가능하다.
▶ 1. Math 메소드
- 정말 많은 메소드를 제공하는데, 자주 사용하거나, 유용한 메소드만 알아보자.
- 다양한 메소드 중 표시한 7가지 메소드만 알아도 기본 업무에는 지장이 없을 것이다.
1) Math.random() - 0보다 크거나 같고 1보다 작은(0 <= x < 1사이의 부동 소수점) 무작위 숫자(random number)를 반환
ex)
Math.random(); // 기본 랜덤 메소드 호출, 0.9569793562433155
(Math.random() * 10).toFixed(); // 0 ~ 10 랜덤 수 리턴(문자열)
Math.round((Math.random() * 10)); // 0 ~ 10 랜덤 수 리턴(number)
2) Math.abs() - 전달 받은 인수의 절대값을 반환한다.
ex)
Math.abs(-1); // 1
Math.abs(1); // 1
Math.abs('-1'); // 1
Math.abs(1.23); // 1.23
Math.abs(-1.23); // 1.23
Math.abs(''); // 0
Math.abs([]); // 0
Math.abs(null); // 0
Math.abs(); // NaN
Math.abs(undefined);// NaN
Math.abs({}); // NaN
Math.abs('god'); // NaN
3) Math.min() - 전달받은 값 중에서 가장 작은 수를 반환한다. - 인수가 없을경우 infinity, 비교 불가능한 값이 있는 경우응 NaN을 반환한다. ex)
Math.min(); // Infinity
Math.min(1, 2, -1, -2, 100, 0); // -2
Math.min(1, 2, -1, -2, "test", 0); // NaN
var arr = [1,2,3];
console.log(Math.min(arr)); // NaN
console.log(Math.min.apply(null, arr)); // 1
console.log(Math.min(...arr)); // 1 (ES6에서 가능)
4) Math.max() - 전달받은 값 중에서 가장 큰 수를 반환한다. - 인수가 없을경우 infinity, 비교 불가능한 값이 있는 경우는 NaN을 반환한다. ex)
Math.max(); // Infinity
Math.max(1, 2, -1, -2, 100, 0); // 100
Math.max(1, 2, -1, -2, "test", 0); // NaN
var arr = [1,2,3];
var a = Math.max(arr); // NaN
var b = Math.max.apply(null, arr); // 3
var c = Math.max(...arr); // 3 (ES6에서 가능)
5) Math.round() - 전달받은 값을 소수점 첫 번째 자리에서 반올림하여 숫자로 리턴한다.
ex)
Math.round(1.234); // 1
Math.round(1.23); // 1
Math.round(1.56); // 2
Math.round(1); // 1
Math.round(0); // 0
Math.round(0.55555);// 1
Math.round(); // NaN
Math.round('god'); // NaN
6) Math.floor() - 전달받은 값과 같거나 작은수 중 가장 큰 정수를 리턴한다.
ex)
Math.floor(1.23); // 1
Math.floor(1); // 1
Math.floor(-0.95); // -1
Math.floor(-1.23); // -2
Math.floor(); // NaN
Math.floor('god'); // NaN
Math.floor(''); // 0
7) Math.ceil() - 전달받은 값과 같거나 큰수 중 가장 작은 정수를 리턴한다.
ex)
Math.ceil(1.23); // 2
Math.ceil(1); // 1
Math.ceil(-0.95); // -0 => 이부분은 익스등에선 0으로 표기된다.
console.log(0 === Math.ceil(-0.95)) // true
Math.ceil(-1.23); // -2
Math.ceil(); // NaN
Math.ceil('god'); // NaN
Math.ceil(''); // 0
▶ 2. Math 프로퍼티
- Javascript는 수학에서 사용하는 다양한 상수들을 Math 프로퍼티를 이용하여 제공 한다.
ex)
Math.E; // 약2.718, 오일러 수(e), 자연로그(natural logarithms)의 밑(base) 값
Math.LN10; // 약 2.303, 10의 자연로그 값
Math.LN2; // 약 0.693
Math.LOG10E ; // 약 0.434, 오일러 수(e)의 밑 값이 10인 로그 값
Math.LOG2E; // 약 1.443, 오일러 수(e)의 밑 값이 2인 로그 값
Math.PI; // 약 3.14, 원의 원주를 지름으로 나눈 비율(원주율) 값
Math.SQRT1_2; // 약 0.707, 2의 제곱근의 역수 값
Math.SQRT2; // 약 1.414, 2의 제곱근 값