<aside> 🎇

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

Math는 생성자 함수가 아니다.

따라서 Math는 정적 프로퍼티와 정적 메서드만 제공한다.

Math은 수학적인 계산을 필요로 할 때 사용하는 도구 상자라고 생각하면 됨

</aside>

29.1 Math 프로퍼티

29.1.1 Math.PI

원주율 PI 값을 반환한다.

[ 예제 29-01 ]

Math.PI; // -> 3.14~~~~~

Math의 프로퍼티에는 PI 뿐만 아니라 로그 등의 프로퍼티도 존재한다.

29.2 Math 메서드

29.2.1 Math.abs

Math.abs 메서드는 인수로 전달된 숫자의 절대 값을 반환한다. 절대 값은 반드시 0 또는 양수이어야 한다.

[ 예제 29-02 ]

Math.abs(-1); // -> 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

<aside> 💡

왜 Math.abs([])은 0으로 치환해주는데 Math.abs({})은 NaN이 나오는 것일까 ?

<aside> 💡

그렇다면 Math.abs() 만 호출하였을 때는 왜 NaN인 것일까

29.2.2 Math.round

Math.round 메서드는 인수로 전달된 숫자의 소수점 이하를 반올림한 정수를 반환한다.

[ 예제 29-03 ]

Math.round(1.4); // -> 1
Math.round(1.6); // -> 2