구구단 출력 함수를 만드는 예제인데, 해당 예제 중에서 함수를 선언하는 부분에 궁금함이 있어 질문합니다.
function dan(n) {
var m=parseInt(n);
if(isNaN(m) || m<1 || m>9) {
alert("잘못입력하셨습니다.");
return;
에서, m이 문자열이거나 1보다 작거나 9보다 큰 경우 경고창이 뜨고, return이 사용되었습니다.
왜 return함수를 사용하였나요?
return함수를 빼고 실행해보니, 예를 들어 숫자 33을 넣었더니 경고창이 뜨지만 함수가 계속 실행되어 화면에 33단이 출력되었습니다.
따라서 return이 멈추는 기능이라는 것을 알겠는데, 왜 그렇게 쓰이는 것인가요?
질문이 두서없이 진행되었는데 양해부탁드립니다.
감사합니다.
그래서 if 문에서는 m이 문자열이거나 1보다 작거나 9보다 큰 경우 if 문 아래의 코드가 실행되지 않도록 합니다.
return 문을 이용하여 dan 함수를 종료하고 빠져나가도록 하였지요.
m이 숫자 33이라면 당연히 이 문제의 목적에 벗어나기 때문에 33단이 출력되지 않게 해야 하겠지요.
뿐만 아니라 m이 숫자가 아닌 경우에도 만일 return을 하지 않는다면 이상한 결과가 출력되는 등 문제가 발생합니다.
2. return 문은 정확히 함수를 종료하고 함수를 호출한 곳으로 돌아가라는 코드입니다. 자바스크립트 엔진이 return 문을 실행하면 dan 함수의 실행을 중단하고 dan 함수를 호출한 곳으로 돌아가서
더 이상 코드가 없으면 그냥 자바스크립트 코드 전체의 실행이 종료되는 것입니다.
return 문으 '멈추라는 기능'으로 해석하는 것은 부분적으로 의미가 있지만, 본질적인 의미는 아닙니다.
3. 좀 어려운 이야기지만, 이 예제에서 dan 함수를 사용하지 않았다면 m이 문자열이거나 1보다 작거나 9보다 큰 경우 를 걸러내지 못할 것입니다.
왜냐하면 m이 문자열이거나 1보다 작거나 9보다 큰 경우에 더 이상 실행을 중지시킬 수 있는 방법이 없기 때문입니다.
설명이 부족하거나 더 이해가 필요하면 그때 좀 더 구체적으로 물으면 답해드리겠습니다.