JavaScript 오류 해결하기-2
문제
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)
}
}