함수의 값을 반환하는 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 + "입니다");