Math 메소드는 자바스크립트의 표준 내장 객체로서 수학적인 작업들을 편리하게 하기 위해 사용된다. 통계, 계산 등에서 유용하게 사용될 수 있다. 그럼 Math 객체의 메소드들을 알아보겠다.
let num1 = 5.1;
let num2 = 5.7;
Math.ceil(num1); //6
Math.ceil(num2); //6
Math.floor(num1); //5
Math.floor(num2); //5
ceil()
은 올림, floor()
은 내림 기능을 한다. 소수점 자릿수에 상관없이 소수 자리의 값이 있다면 올리거나 내린다.
Math.round(num1); //5
Math.round(num2); //6
round()
는 소수점 자리의 값에 따라 반올림을 한다.
만약 소수점 둘째 자리까지 표현할 것이며, 소수점 셋째 자리에서 반올림을 원할 경우 toFixed()
메소드를 사용할 수 있다.
let userRate = 30.1234;
Number(userRate.toFixed(2));
괄호 안에는 표현할 소수점 자릿수를 말한다. 0이면 없다는 것이므로 정수만 출력되고 2이면 소수점 둘째짜리까지 함께 출력된다. 다만 주의할 점은 문자열을 반환하기 때문에 숫자형으로 변환해야 한다.
Math.random()
0에서 1 사이의 무작위 숫자를 생성한다. 계속 실행할 때마다 새로운 값이 생성되는 것을 볼 수 있다. 말 그대로 랜덤으로 생성된다.
만약 1부터 100 사이의 임의의 숫자를 뽑고 싶다면 어떻게 해야 할까?
Math.floor(Math.random() * 100) + 1
floor()
메소드를 함께 활용하여 해결할 수 있다. 단계별로 값이 진행되는 순서를 알아보겠다.
Math.random()
= 0.6789Math.random() * 100
= 67.89Math.floor(Math.random() * 100)
= 67Math.floor(Math.random() * 100) + 1
= 68마지막에 1을 더해주는 이유는 0이 나올 경우를 대비하기 위함이다. 결과적으로 1~100 사이의 숫자 중 68이 나왔다.
각각 가지고 있는 값들 중 최대 혹은 최솟값 하나를 구하는 것이다.
Math.max(1, 4, 10, -1, 2.24) // 10
Math.min(1, 4, 10, -1, 2.24) // -1
같은 숫자들 중에서 max()
를 통해 10, min()
을 통해 -1이 출력된다. 가장 큰 값과 가장 작은 값이 나오게 된다.
abs란 absolute의 약자이다. 절대값을 구하는 메소드이다.
Math.abs(-1) // 1
-와 상관없이 절댓값인 1이 출력된다.
pow는 power의 약자로, 제곱한 값을 구한다.
Math.pow(2, 10); // 1024
2의 10승 (=2^10)을 구하는 것이다. 2를 10번 거듭제곱한 1024가 반환된다.
sqrt란 square root의 약자로, 제곱근을 한 값을 구한다.
인자에 음수가 담겼다면 NaN
을 반환한다.
Math.sqrt(16); // 4
Math.sqrt(2); // 1.414213562373095
Math.sqrt(-1); // NaN
코딩앙마의 자바스크립트 중급 강좌 수강 후 정리한 글입니다.