JavaScript/오류해결하기

JavaScript 오류 해결하기-2

justgodoit 2024. 8. 13. 11:53

문제

1부터 10사이의 정수 랜덤값 반환
자바 (int)(Math.random() * 10 + 1)
-------------------------------------------------
1부터 랜덤수까지 매번 1씩 증가되는 값 출력

 

 

함수 작성 시 오류발생하여 오류 원인과 수정 후 해결에 대해 작성하겠습니다.

  <h3>return</h3>

  <script>
    // 1부터 10사이의 정수 랜덤값 반환
    // 자바 (int)(Math.random() * 10 + 1)
    const fnReturnRanNum = function () {
      return parseInt(Math.random() * 10 + 1);
    }

    // 1부터 랜덤수까지 매번 1씩 증가되는 값 출력
    const fnOneToRanNum = function () {
      let random = fnOneToRanNum();
      for (let i=1; i<= random; i++) {
        console.log(i)
      }
    }
  </script>

<button onclick="fnOneToRanNum();">버튼</button>

🚨 오류

▶Uncaught 

RangeError: Maximum call stack size exceeded
    at fnOneToRanNum (07_function.html:154:20)
    at fnOneToRanNum (07_function.html:154:20)
    at fnOneToRanNum (07_function.html:154:20)
    at fnOneToRanNum (07_function.html:154:20)
    at fnOneToRanNum (07_function.html:154:20)
    at fnOneToRanNum (07_function.html:154:20)
    at fnOneToRanNum (07_function.html:154:20)
    at fnOneToRanNum (07_function.html:154:20)
    at fnOneToRanNum (07_function.html:154:20)
    at fnOneToRanNum (07_function.html:154:20)

 

👀 구글번역

▶잡히지 않음 
RangeError: 최대 호출 스택 크기를 초과했습니다.
    fnOneToRanNum에서(07_function.html:154:20)
    fnOneToRanNum에서(07_function.html:154:20)
    fnOneToRanNum에서(07_function.html:154:20)
    fnOneToRanNum에서(07_function.html:154:20)
    fnOneToRanNum에서(07_function.html:154:20)
    fnOneToRanNum에서(07_function.html:154:20)
    fnOneToRanNum에서(07_function.html:154:20)
    fnOneToRanNum에서(07_function.html:154:20)
    fnOneToRanNum에서(07_function.html:154:20)
    fnOneToRanNum에서(07_function.html:154:20)

 

❓ 원인

변수명을 잘못 입력하였습니다.

    const fnOneToRanNum = function () {
      let random = fnOneToRanNum();
      for (let i=1; i<= random; i++) {
        console.log(i)
      }
    }

 

✅ 해결

    const fnOneToRanNum = function () {
      let random = fnReturnRanNum();
      for (let i=1; i<= random; i++) {
        console.log(i)
      }
    }