Math() 는 수학적인 연산을 수행하는 상수와 함수를 포함하는 내장 객체입니다.
자주 사용하는 메서드 위주로 예시와 함께 확인해봅시다.
round 는 반올림 메서드입니다.
console.log(Math.round(3.5)); //4
console.log(Math.round(3.49)); //3
console.log(Math.round(2)); //2
console.log(Math.round(0.82)); //1
ceil 은 올림 메서드입니다.
console.log(Math.ceil(1)); //1
console.log(Math.ceil(1.1)); //2
console.log(Math.ceil(2.01)); //3
console.log(Math.ceil(3.5)); //4
floor은 내림 메서드입니다.
console.log(Math.floor(2)); //2
console.log(Math.floor(2.01)); //2
console.log(Math.floor(2.5)); //2
console.log(Math.floor(2.99)); //2
random 은 0.0000000000000000에서 0.9999999999999999 사이의 범위에서 랜덤수를 제공하는 랜덤함수입니다. (1은 미포함)
const randomNumber = Math.random();
console.log(randomNumber); //0.9532672687180055
정수 1~9 사이의 랜덤수를 반환
const randomNumber2 = Math.random();
console.log(Math.floor(randomNumber2*10)); //9
최소(min), 최대값(max)을 받아 그 사이의 랜덤수를 반환
function getRandomNumber(min, max) {
return Math.floor(Math.random() * ((max - min) + 1) + min);
}
console.log (getRandomNumber(1, 100))
((max - min) + 1)을 통해 가능한 값의 범위를 계산합니다. max - min은 최대값과 최소값의 차이이며, + 1은 최대값을 포함하기 위해 더해줍니다.
Math.random()에 이 값을 곱하여 0 이상 (max - min) + 1 미만의 난수를 생성합니다. 생성된 난수에 min을 더하여 최소값을 보정하고,
Math.floor() 함수로 소수점 이하를 버려 정수로 변환합니다.
(Math.random() * ((max - min) + 1) + min) 가 정확히 이해되지 않는다면 숫자를 직접 넣어봅니다.
1~100 사이를 구현해보자.
Math.random()은 0과 1미만의 난수(a)를 반환하니 0 < a < 1 가 된다.
(0 < a < 1) * ((100 - 1) + 1) + 1 를 계산하면
0 < a < 101 으로 최댓값까지 포함할 수 있다.
한번 더! 50~90 사이의 랜덤값을 구현해보자.
(0 < a < 1) * ((90 - 50) + 1) + 50
0 < a < 91
'Language > JavaScript' 카테고리의 다른 글
[JavaScript] for...in vs for...of (0) | 2023.07.18 |
---|---|
[JavaScript] scope, block 등 용어 정의 (0) | 2023.07.18 |
[JavaScript] DOM (0) | 2023.07.17 |
[JavaScript] 문자열을 배열로 변환, 문자열 자르기 (1) | 2023.07.16 |
[JavaScript] 배열의 반복문|map, forEach (w.Arrow function) (0) | 2023.07.15 |