return
return문은 함수에서 결과값을 반환할 때 사용한다.
그리고 return문이 실행되면 반복문의 break문처럼 코드가 강제 종료된다.
즉, return문의 아래에 코드가 더 있더라도 return문을 만나면 아랫줄의 코드는 무시하고 값을 반환한 후 함수를 종료한다. 반환된 값은 함수를 호출한 자리에 남는다.
그렇기 때문에 함수 호출문이 변수 안에 담겨 있어야한다.
// 기본형 1
function 함수명(){
자바스크립트 코드1;
return 반환할 값; // 값을 반환하고 종료한다.
자바스크립트 코드2; //return문 다음에 등장하는 자바스크립트 코드는 무시한다.
}
let 변수 = 함수명(); // 이 자리에 반환된 값이 저장된다.
// 기본형 2
function 함수명(){
자바스크립트 코드1;
return; // 함수를 강제 종료한다. 값은 반환하지 않는다.
}
let 변수 = 함수명(); // 이 자리에 반환된 값이 저장된다.
// 기본형 3
function 함수명(){
자바스크립트 코드1;
if(조건식) {return;} // if문이 들어가면 조건식의 만족여부에 따라 함수를 강제종료할 수 있다.
}
let 변수 = 함수명(); // 이 자리에 반환된 값이 저장된다.
만약 myFnc라는 함수 안에 매개변수로 n과 k가 들어있고 return 하는 값이 n + k 라면
이후에 함수를 호출할 때 받는 n과 k의 값을 더해 결과값이 도출된다.
아래의 상황에서는 10과 20을 넣었기 때문에 결과값이 30이 나왔다.
function myFnc(n, k) {
return n + k;
}
document.write(myFnc(10, 20)); //결과값 30
사용자에게 국어시험 점수와 수학시험 점수를 받아 평균값을 구해보자.
먼저 물어보고 싶은 값을 배열로 입력하여 arrSubject에 입력하였다.
이렇게 배열로 저장해 놓으면 입력값을 각각 저장할 수 있으며 그 갯수도 length 속성으로 구할 수 있기 때문에 좋다.
함수 testAvg를 만들고 arrData라는 매개변수를 지정했다.
testAvg에서 arrData는 호출할 때 arrSubject를 입력할 것이기 때문에 같은 값이라고 생각하면서 만들면 조금 쉽다.
이후 반복문을 통해 arrData의 인덱스 값과 length값을 이용해 범위를 지정해준다.
그리고 평균값을 내기 위해 모두 더한 값을 더한 수만큼 나누어 return한다.
이러한 값을 호출하기 위해 let result에 담아 호출하였다.
const arrSubject = ["국어", "수학"];
function testAvg(arrData) {
// 더하기를 하기 위한 기본값
let sum = 0;
for (let i = 0; i < arrData.length; i++) {
// Number를 통해 사용자에게 받은 점수를 정수로 반환
sum += Number(prompt(arrData[i] + "점수는?", "0"));
}
// 평균값을 내기위해 더한 값에서 더한 수만큼 나누기
return sum / arrData.length;
}
// result에 함수담아서 호출
let result = testAvg(arrSubject);
document.write(result);
'자바스크립트(JavaScript) > 자바스크립트' 카테고리의 다른 글
[JavaScript] 문자열을 숫자로 반환하는 메서드 Number(), parseInt() (0) | 2024.07.29 |
---|---|
[JavaScript] 매개변수(parameter)와 전달인자(arguments) (0) | 2024.07.29 |
[JavaScript] HTML 태그 불러오는 방법 (0) | 2024.07.26 |
[JavaScript] 변수의 특징/주의점 (var, let, const), 변수의 범위와 호이스팅 (2) | 2024.07.26 |
[JavaScript] 함수란? (0) | 2024.07.26 |