...
자바스크립트 Math 메소드
Math 객체는 수학 상수와 함수를 위한 프로퍼티와 메소드를 제공하는 빌트인 객체이다.
Math 객체는 생성자 함수가 아니다.
따라서 Math 객체는 정적(static) 프로퍼티와 메소드만을 제공한다.
Math Method
Math.abs(number) : number
인수의 절댓값 반환한다.
Math.abs(-1); // 1
Math.abs('-1'); // 1
Math.abs(''); // 0
Math.abs([]); // 0
Math.abs(null); // 0
Math.abs(undefined);// NaN
Math.round(number) : number
인수의 소수점 이하를 반올림한 정수를 반환한다.
Math.round(1.4); // 1
Math.round(1.6); // 2
Math.round(-1.4); // -1
Math.round(-1.6); // -2
Math.round(1); // 1
Math.round(); // NaN
Math.ceil(number) : number
인수의 소수점 이하를 올림한 정수를 반환한다.
Math.ceil(1.4); // 2
Math.ceil(1.6); // 2
Math.ceil(-1.4); // -1
Math.ceil(-1.6); // -1
Math.ceil(1); // 1
Math.ceil(); // NaN
Math.floor(number) : number
인수의 소수점 이하를 내림한 정수를 반환한다. Math.ceil의 반대 개념이다.
양수인 경우, 소수점 이하를 떼어 버린 다음 정수를 반환한다.
음수인 경우, 소수점 이하를 떼어 버린 다음 -1을 한 정수를 반환한다.
Math.floor(1.9); // 1
Math.floor(9.1); // 9
Math.floor(-1.9); // -2
Math.floor(-9.1); // -10
Math.floor(1); // 1
Math.floor(); // NaN
Math.sqrt(number) : number
인수의 제곱근을 반환한다.
Math.sqrt(9); // 3
Math.sqrt(-9); // NaN
Math.sqrt(2); // 1.414213562373095
Math.sqrt(1); // 1
Math.sqrt(0); // 0
Math.sqrt(); // NaN
Math.random() : number
임의의 부동 소수점을 반환한다.
반환된 부동 소수점은 0부터 1 미만이다.
즉, 0은 포함되지만 1은 포함되지 않는다.
Math.random(); // 0 ~ 1 미만의 부동 소수점 (0.8208720231391746)
/*
1 ~ 10의 랜덤 정수 취득
1) Math.random로 0 ~ 1 미만의 부동 소수점을 구한 다음, 10을 곱해 0 ~ 10 미만의 부동 소수점을 구한다.
2) 0 ~ 10 미만의 부동 소수점에 1을 더해 1 ~ 10까지의 부동 소수점을 구한다.
3) Math.floor으로 1 ~ 10까지의 부동 소수점의 소수점 이하를 떼어 버린 다음 정수를 반환한다.
*/
const random = Math.floor((Math.random() * 10) + 1);
console.log(random); // 1 ~ 10까지의 정수
Math.pow(number, number) : number
첫번째 인수를 밑(base), 두번째 인수를 지수(exponent)로하여 거듭제곱을 반환한다.
Math.pow(2, 8); // 256
Math.pow(2, -1); // 0.5
// ES7(ECMAScript 2016) Exponentiation operator(거듭 제곱 연산자)
2 ** 8; // 256
Math.max(…number) : number
인수 중에서 가장 큰 수를 반환한다.
Math.max(1, 2, 3); // 3
// 배열 요소 중에서 최대값 취득
// max() 인수로 배열을 받을 수 없으니, 배열을 인수로 받는 apply를 사용
const arr = [1, 2, 3];
const max = Math.max.apply(null, arr); // 3
// ES6 문법
Math.max(...arr); // 3
[...rest] = [1,2,4]; // rest = [1,2,4]
Math.max(...rest); //4
Math.min(…number) : number
인수 중에서 가장 작은 수를 반환한다.
Math.min(1, 2, 3); // 1
// 배열 요소 중에서 최소값 취득
const arr = [1, 2, 3];
const min = Math.min.apply(null, arr); // 1
// ES6 문법
Math.min(...arr); // 1
메소드 | 설명 |
Math.min(x, y, ...) | 인수로 전달받은 값 중에서 가장 작은 수를 반환함. |
Math.max(x, y, ...) | 인수로 전달받은 값 중에서 가장 큰 수를 반환함. |
Math.random() | 0보다 크거나 같고 1보다 작은 랜덤 숫자(random number)를 반환함. |
Math.round(x) | x를 소수점 첫 번째 자리에서 반올림하여 그 결과를 반환함. |
Math.floor(x) | x와 같거나 작은 수 중에서 가장 큰 정수를 반환함. |
Math.ceil(x) | x와 같거나 큰 수 중에서 가장 작은 정수를 반환함. |
Math.abs(x) | x의 절댓값을 반환함. |
Math.cbrt(x) | x의 세제곱근을 반환함. |
Math.sqrt(x) | x의 제곱근을 반환함. |
Math.clz32(x) | x을 32비트 이진수로 변환한 후, 0이 아닌 비트의 개수를 반환함. |
Math.exp(x) | ex 의 값을 반환함. (e : 오일러의 수) |
Math.expm1(x) | 1 - ex 의 값을 반환함. |
Math.fround(x) | x와 가장 근접한 32비트 부동 소수점 수(single precision float)를 반환함. |
Math.hypot(x, y, ...) | 인수로 전달받은 값들을 각각 제곱한 후 더한 총합의 제곱근을 반환함. |
Math.imul(x, y) | 인수로 전달받은 두 값의 32비트 곱셈의 결과를 반환함. |
Math.log(x) | x의 자연로그 값을 반환함. (ln x) |
Math.log1p(x) | ln(1 + x)의 값을 반환함. |
Math.log10(x) | x의 10을 밑으로 가지는 로그 값을 반환함. |
Math.log2(x) | x의 2를 밑으로 가지는 로그 값을 반환함. |
Math.pow(x, y) | x의 y승을 반환함. |
Math.sign(x) | x의 부호 값을 반환함. |
Math.trunc(x) | x의 모든 소수 부분을 삭제하고 정수 부분만을 반환함. |
Math.sin(x), Math.cos(x), Math.tan(x),Math.asin(x), Math.acos(x), Math.atan(x), Math.asinh(x), Math.acosh(x), Math.atanh(x), Math.atan2(x) | x의 해당 삼각 함숫값을 반환함. |
자바스크립트는 수학에서 사용하는 다양한 상수들을 Math 프로퍼티를 이용해 제공하고 있다.
프로퍼티 | 설명 | 대략값 |
Math.E | 오일러의 수(Euler's constant)라고 불리며, 자연로그(natural logarithms)의 밑(base) 값 | 2.718 |
Math.LN2 | 2의 자연로그 값 | 0.693 |
Math.LN10 | 10의 자연로그 값 | 2.303 |
Math.LOG2E | 오일러 수(e)의 밑 값이 2인 로그 값 | 1.443 |
Math.LOG10E | 오일러 수(e)의 밑 값이 10인 로그 값 | 0.434 |
Math.PI | 원의 원주를 지름으로 나눈 비율(원주율) 값 | 3.14159 |
Math.SQRT1_2 | 2의 제곱근의 역수 값 | 0.707 |
Math.SQRT2 | 2의 제곱근 값 | 1.414 |
인용한 부분에 있어 만일 누락된 출처가 있다면 반드시 알려주시면 감사하겠습니다
이 글이 좋으셨다면 구독 & 좋아요
여러분의 구독과 좋아요는
저자에게 큰 힘이 됩니다.