return문이란 함수에서 결과값을 되돌려 줄 때 사용된다. 그리고 함수에서 return문이 실행되면, 반복문의 break문과 비슷하게 실행문이 강제로 종료된다.

정리하면, 함수 정의문의 실행문으로 return문이 사용되었으면 함수를 호출했을 때 결과값을 반환한다. 그리고 진행중이던 실행문을 정지시키고 함수를 강제로 종료한다.


데이터를 반환하는 return문


다음은 return문이 함수 내에서 결과값의 반환 용도로 사용된 기본문법이다.


/*
  function 함수명(){
    실행문;
    return 데이터;
  }
  
  var 변수 = 함수명();
*/

function calc(){
  var result = 100+200;
  return result;
}

var num = calc();
document.write(num);

함수를 호출했을 때, 결과값 300을 되돌려받아서 변수 num에 저장한 후 문서에 num의 데이터인 300을 출력한다.




강제종료 역할을 하는 return문


아래의 기본문법에서 함수가 호출되면 함수 정의문 내의 실행문이 실행된다.
이때 return문이 실행되면 return문 다음에 오는 실행문은 실행되지 않고 강제로 종료된다.


/*
  function 함수명(){
    실행문;
    return;
    실행문;
  }
  
  함수명();
*/

function test(){
  document.write("hello");
  return;
  document.write("안녕");  // 이 실행문은 실행되지 않는다.
}

test();




재귀함수 호출


최초함수를 호출하고 함수 정의문 내에서 실행문으로 함수를 다시 호출하는 것을 재귀함수 호출이라고 한다.
함수를 반복문처럼 여러번 호출하기 위해 사용한다.

재귀함수 호출의 기본문법은 아래와 같다.


/*
  function 함수명(){
    실행문;
    함수명();
  }
  
  함수명();
*/

function myFnc(){
  document.write("hello");
  myFnc();
}

myFnc();



-재귀함수 호출 예제


var num = 0;

function testFnc(){
  num++;
  document.write(num, "<br>");
  
  if(num==10) return;
  
  testFnc();
}

testFnc();

재귀함수 호출을 적용하여 1부터 10까지의 값을 출력한 예제이다.

변수 num에 초기값 0을 담고, testFnc 함수의 실행문에 num의 값이 1씩 증가되고 문서에 출력되도록 하였다.
그리고 만약 num의 값이 10이 되면 return문으로 함수를 강제종료 하도록 하였다.

함수의 실행문으로 재귀함수 호출문을 삽입하여 반복적으로 testFnc 함수가 실행된다.