정말로 간단한 노트와 같은 글입니다. 왜냐하면 항상 자주 까먹고 인터넷에서 복사하는 내용 중 하나이기 때문에 정리해놓으면 이 글은 안 들어올지라도… 기억에는 남기 때문이죠.


JavaScript에서 무작위 값 출력하기

JavaScript에서의 무작위 함수가 다른 언어와의 차이점이라고 할 수 있다면 무작위 함수가 0 이상 그리고 1 미만의 범위를 출력한다는 것입니다.

> Math.random()
0.04350518857758279

그렇게 때문에 먼저 구하고자 하는 범위만큼 곱해주셔야 합니다. 가장 간단하게 100으로 정해봤습니다. 이렇게 곱하면 구하고자 하는 수의 (Math.random())%만큼의 값을 얻을 수 있을겁니다.

> Math.random() * 100
66.43212601469777

그리고 소숫점을 버리기 위해서 Math.floor 함수를 사용해주세요. 음수에서의 Math.floor 함수 사용은 MDN 문서를 참고하시기 바랍니다.

> Math.floor(Math.random() * 100)
50

하지만 위에서 1은 취급을 안 한다고 하였으니 1을 더해주어야 합니다. 이 때에는 반대로 0이 나오지 않는 경우가 등장합니다.

> Math.floor(Math.random() * 100) + 1
59

만약 0이 나오는 경우도 필요한 경우에는 1을 100 뒤에 더하면 되겠습니다. 사실 101을 쓰면 더 좋지 않을까라는 질문이 나올 수 있지만 이는 가독성을 위해서 1을 따로 쓰는 것을 강력히 권해드리는 바입니다. 그리고 곱셈의 순서에 맞춰서 괄호를 한 번 더 걸어주면 완성입니다.

> Math.floor(Math.random() * (100 + 1))
80

노트

  1. JavaScript에서 Math.random 함수가 출력하는 값의 범위는 0 이상, 1 미만이다.
  2. Math.floor 함수를 양수 범위에서 소숫점을 버리기 위한 용도로 활용할 수 있다.