728x90
return문은 함수에서 결과값을 반환할 때 사용한다.
return문이 실행되면 코드가 강제로 종료된다.(반복문의 break문과 유사함)
1. 데이터를 반환하고 강제 종료하는 return문
* 기본형
function 함수명(){ 자바스크립트코드1; return 데이터(값); 자바스크립트코드2; } var 변수 = 함수명(); // 함수 호출문 - 함수코드 실행 - 자바스크립트코드2를 무시하고 데이터를 반환 |
* 함수 정의문 내에서 작성한 코드를 실행한 후 계산된 결과값을 return문으로 함수 호출문에 반환하는 예제
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <title> 함수 </title> <script> function testAvg(arrData){ var sum = 0; for (var i = 0; i < arrData.length; i++){ sum += Number(prompt(arrData[i] + "점수는?","O")); } var avg = sum/arrData.length; return avg; } var arrSubject = ["국어", "수학"]; var result = testAvg(arrSubject); document.write("평균점수는" + result + "점입니다."); </script> </head> <body> </body> </html> |
* 총8개의 이미지를 사용해 갤러리를 만드는 예제를 해보자.
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <title> 함수 </title> <style> * { margin: 0; padding: 0; } #galleryZone { text-align: center; } #galleryZone input[type="image"] { margin: 0 8px; } </style> <script> var num = 1; function gallery(direct){ if(direct) { if(num == 8) return; num++; // 다음버튼을 누르면 direct의 값이 1이 되어 num의 값이 1만큼 증가한다. }else{ if(num == 1) return; num--; // 이전버튼을 누르면 direct의 값이 0이 되어 num의 값이 1만큼 감소된다. } var imgTag = document.getElementById("photo"); imgTag.setAttribute("src", "images/pic_" + num + ".jpg"); // id 값이 "photo"dls 이미지 태그를 선택한다. 그런다음 'src' 속성을 새값으로 설정한다. //setArrtibute("속성명","새 값") 메서드는 선택한 태그의 지정한 속성을 새값으로 바꿔준다. } </script> </head> <body> <div id="galleryZone"> <p><img src="images/pic_1.jpg" id="photo" alt=""></p> <p> <button onclick="gallery(0)">이전</button> <button onclick="gallery(1)">댜음</button> </p> </div> </body> </html> |
여기에서 다음버튼을 누르면 pic_2,3, ... .jpg가 순서대로 나타난다. 이미지의 파일명 숫자가 1씩 증가되며 그림이 나타나는데
이미지는 8까지 있기때문에 9가 나오면 이미지를 불러올 수 없으므로 return문으로 함수를 종료해준다.
2. 재귀 함수 호출
함수 정의문 내에서 작성한 코드로 함수를 다시 호출하는 것을 재귀함수 호출이라고 한다.
(함수를 반복문처럼 여러번 호출하기 위해 사용한다.)
* 기본형
function myFnc(){ 자바스크립트코드; myFnc(); } myFnc(); |
* 재귀함수 호출을 적용하여 1부터 10까지의 값을 출력하는 예제를 사용해보자.
<!DOCTYPE html> <html lang="ko"> <head> <meta charset = "UTF-8"> <title> 함수 </title> <script> var num = 0; function testFnc(){ num++; document.write(num, "<br>"); if(num == 10) return; //num값이 10이면은 종료한다. testFnc(); } testFnc(); </script> </head> <body> </body> </html> |
'내마음대로만들어보자 > JS' 카테고리의 다른 글
객체 생성자 함수 (0) | 2021.08.15 |
---|---|
함수 스코프(Scope) (0) | 2021.08.15 |
자바스크립트 함수란? (0) | 2021.08.14 |
while문 (0) | 2021.08.13 |
리터럴 (0) | 2021.08.13 |