toppoo 2023. 1. 9. 15:32

표준 빌트인 객체인 Math는 수학적인 상수/함수를 위한 프로퍼티/메서드를 제공함

생성자 함수가 아니기 때문에 정적 프로퍼티/메서드만 제공함


Math 프로퍼티

1. Math.PI

원주율 PI 값을 반환함

Math.PI; // 3.141592653589793

Math 메서드

1. Math.abs

인수로 전달된 숫자의 절대값을 반환함
절대값은 반드시 0 또는 양수이어야 함
Math.abs(-1); // 1
Math.abs('-1'); // 1
Math.abs(''); // 0
Math.abs([]); // 0
Math.abs(null); // 0
Math.abs(undefined); // NaN
Math.abs({}); // NaN
Math.abs('string'); // NaN
Math.abs(); // NaN

 

2. Math.round

인수로 전달된 숫자의 소수점 이하를 반올림한 정수를 반환함

 

3. Math.ceil

인수로 전달된 숫자의 소수점 이하를 올림한 정수를 반환함

 

4. Math.floor

인수로 전달된 숫자의 소수점 이하를 내림한 정수를 반환함

 

5. Math.sqrt

인수로 전달된 숫자의 제곱근을 반환함
Math.sqrt(9); // 3
Math.sqrt(-9); // NaN
Math.sqrt(2); // 1.414213562373095
Math.sqrt(1); // 1
Math.sqrt(0); // 0
Math.sqrt(); // NaN

 

6. Math.random

임의의 난수를 반환함
반환한 난수는 0에서 1미만의 실수
/*
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 범위의 정수

 

7. Math.pow

첫 번째 인수를 밑으로, 두 번째 인수를 지수거듭제곱한 결과를 반환함
Math.pow(2, 8); // 256
Math.pow(2, -1); // 0.5
Math.pow(2); // NaN

ES7 에서 도입된 지수 연산자를 사용하면 가독성이 더 좋음

// ES7 지수 연산자
2 ** 2 ** 2; // 16
Math.pow(Math.pow(2, 2), 2); // 16

 

8. Math.max

전달받은 인수 중에서 가장 큰 수를 반환함
인수가 전달되지 않으면 -Infinity를 반환함

배열의 요소 중에서 최대값을 구하려면

Function.prototype.apply 메서드, 스프레드 문법을 사용해야 함

Math.max.apply(null, [1, 2, 3]); // 3
Math.max(...[1, 2, 3]); // 3

 

9. Math.min

전달받은 인수 중에서 가장 작은 수를 반환함
인수가 전달되지 않으면 Infinity를 반환함

배열의 요소 중에서 최소값을 구하려면

Function.prototype.apply 메서드, 스프레드 문법을 사용해야 함

Math.min.apply(null, [1, 2, 3]); // 1
Math.min(...[1, 2, 3]); // 1