본문 바로가기

자바스크립트

[자바스크립트] - return

  함수의 값을 반환하는 return문  

return문은 함수에서 결과값을 반환할 때 사용한다. 
그리고 return문이 실행되면 반복문의 break문처럼 코드가 강제 종료된다. 
즉 return문 아래에 코드가 더 있더라도 return문을 만나면 아랫줄의 코드는 무시하고 값을 반환한 후 코드를 종료하게 된다. 
    
☆ 반환된 값은 함수를 호출한 자리에 남는다. 그렇기 때문에 함수호출문이 변수 안에 담겨 있어야 한다.   

[기본형]

function 함수명(){
   return 반환할 값;
}

let 변수 = 함수명(); <- 이 자리에 반환된 값이 저장됨.

retrun문 아래에 자바스크립트 코드가 등장하면 실행되지 않는다.  retrun문 위에 자바스크립트 코드가 있으면 가능하다. 

[기본형 2]

function 함수명(){
     자바스크립트 코드;
     return; <- 함수를 강제 종료함. 값은 반환하지 않는다. 
}

let 변수 = 함수명();

return만 쓸수도 있다. retrun 뒤에 반환할 값을 안쓰면 함수를 강제 종료하고 값은 반환하지 않는다. 

[if문과 같이 사용할 때]

function 함수명(){
   자바스크립트 코드1;
   if(조건식){ return; } 
}

let 변수 = 함수명();

if문이 들어가면 조건식의 만족여부에 따라 함수를 강제종료 할 수 있다. 

강제종료할 때는 함수호출을 변수 안에 담을 필요가 없으니 변수는 안만들어도 된다. 

 

변수는 반환될 값이 있을 경우에 필요하다. 

 
  function myFnc(num1, num2) {
        return num1 + num2;

        console.log("함수종료"); //retrun문 뒤에 코드는 실행되지않는다.
      }

      let myDate = myFnc(10, 20); //반환된 값이 함수를 호출한 자리에 남기 때문에 함수호출문이 변수 안에 담겨있어야한다.
      console.log(myDate);
 
 

더해진 값 30이 myFnc 호출한 자리에 남게되니깐 변수로 함수호출문을 감싸서 변수 myDate에 반환된 값이 들어가게 해준다. 


   
  /*국어점수와 수학점수를 사용자로부터 입력받아 평균 점수를 구하는 함수*/

      function testAvg(arrData) {
        let sum = 0;

        //사용자에게 점수를 묻고 숫자로 변환하여 sum과 복합대입연산하여 국어점수와 수학점수를 더하기
        for (let i = 0; i < arrData.length; i++) {
          //인덱스 번호는 0부터 시작하니깐 초깃값 0 이고 현재 랭쓰가 2니깐 0,1해서 1까지 돌아가야한다.
          sum += Number(prompt(arrData[i] + "점수는?", "0"));
        }

        //평균점수 구하기
        let avg = sum / arrData.length;
        return avg;
      }

      const arrSubject = ["국어", "수학"];

      let result = testAvg(arrSubject); //인수로 배열을 보낸 것. arrSubject인수는 arrData매개변수에 담긴다. 평균점수는 result로 간다. 함수호출에 가는데 함수를 변수로 감쌌으니깐.

      document.write("평균점수는" + result + "입니다");