자바스크립트 질문이요!!
본문
<script>
//var num = 0;
function testFnc(num){
num++;
document.write(num+"<br>");
if(num == 10) return;
testFnc(num);
document.write(num+"<br>");
}
testFnc(0);
</script>
10까지 갔다가 왜 역주하는지를 모르겠네요;;
자세히 설명해주세요...
답변 3
간단합니다. 재귀에서 빠져나오면서 그냥 찍히는겁니다
리턴 받을때까지 이프문 숫자만큼 재귀 할거잖아요?
리턴 받으면 그 함수 자체를 빠져나오게 되고, 그 빠져나온 함수를 콜했던 함수의 넘버가 차례대로 찍히는 것 뿐이라는거죠
예를 들어 10이 되면 함수를 빠져나오게 되고 num이 9였던 함수로 되돌아가게됩니다.
그리고 그 함수가 자연스레 끝나고, 앞서 있던 것들이 차례대로 끝나고 종료되는 것 일뿐입니다.
이해가 안되시면 댓글 남겨주세요. 좀 더 자세하게 설명드릴게요
마지막 라인 아래 코드 제거하면 역행은 않네요.
document.write(num+"<br>");
다만,
저게 어케 반복문처럼 구는지 그게 더 궁금..ㅎ
즉, 이런 방식으로 작동한다고 보시면 될 듯...
1a
2a
3a.....
3b .....
2b
1b
답변을 작성하시기 전에 로그인 해주세요.