Math.random( )
Math.random( )은 0 ~ 1 사이에서 랜덤한 부동소수점 값을 반환한다.
물론 사용자가 원하는 범위를 * (곱하기) 와 + (더하기) 를 이용해 지정하는 것이 가능하다.
기본적으로 반환값이 실수형이여서, 정수형 랜덤 값을 반환받고 싶다면, Math.floor( )를 추가로 사용해야 한다.
Math.random( ) 사용법
Math.random() - 0 이상 1 미만 랜덤한 실수값을 반환
let result = Math.random();
console.log(result); // 0.7712465203639336(실행할 때마다 값은 바뀐다)
범위를 지정하지 않았을 경우 0 이상 1 미만의 값 중에서 랜덤한 값을 반환한다.
Math.random() * 최댓값 - 0 이상 10 미만 랜덤한 실수값을 반환
let result = Math.random() * 10;
console.log(result); // 6.262940880978174(실행할 때마다 값은 바뀐다)
* (곱하기) 를 이용해서 최댓값을 10으로 만들었다.
이렇게 되면 0 이상 10 미만의 값 중에서 랜덤한 값을 반환한다.
(Math.random() * (최댓값-최솟값)) + 최솟값 - 1 이상 10 미만 랜덤한 실수값을 반환
let result = (Math.random() * 10 - 1) + 1;
console.log(result); // 4.831136301826513(실행할 때마다 값은 바뀐다)
+ (더하기) 를 이용해 최솟값을 1으로 만들었다.
하지만, 아까 최댓값을 지정하는 것 처럼 단순히 최솟값을 더하는게 아니라 최댓값에서 최솟값을 뺀 상태에서 최솟값을 더해주었다.
그 이유는 Math.random( ) 는 기본적으로 최솟값이 0인데 반환값에 최솟값을 더해주는 식으로 최솟값을 정하게 된다.
(Math.random() * 10) + 1;
위와 같은 방식이면, 최솟값은 1이 될테지만, 최댓값이 11이 되버린다.
ex) 0 이상 10 미만의 범위에 +1 을 하여 1 이상 11 미만의 범위로 바뀐다.
(Math.random() * 10 - 1) + 1;
이를 방지하기 위해서 최댓값에서 최솟값을 빼는 과정이 필요하다.
ex) 0 이상 9미만 의 범위에 +1 을 하여 1 이상 10 미만의 범위로 바뀐다.
Math.floor(Math.random() * (최댓값 - 최솟값) + 최솟값) - 0 이상 10 미만 랜덤한 정수값을 반환
let result = Math.floor((Math.random() * 10 - 1) + 1);
console.log(result); // 8(실행할 때마다 값은 바뀐다)
Math.floor( )를 이용하여 Math.random( ) 의 반환 값을 정수로 바꾸어준다.
'JavaScript > JavaScript_지식_정리' 카테고리의 다른 글
객체의 프로퍼티 값으로 함수가 들어가는 '메소드(Method)' (0) | 2021.08.01 |
---|---|
Javascript의 자료형 중 하나인 '객체(Object)' (0) | 2021.08.01 |
HTML input 태그의 text 타입의 값을 Javascript의 변수로 할당 (0) | 2021.07.29 |
HTML에서 Javascript 불러오기 (0) | 2021.07.28 |