본문 바로가기
IT/JavaScript

[javaScript] 함수2

by on sunday 2020. 1. 11.
728x90
반응형

 

return 문은 함수에서 결과값을 반환할 때 사용되며, return문이 실행되면 코드가 강제로 종료됩니다.

 

function test(arrData){
	var sum=0;
	for(var i=0; i< arrData.length; i++){ 
		sum += Number(prompt(arrData[i] + "점수는?", "0"));
	}
	var avg = sum / arrData.length;
	return avg;
}
var arrSubject=["국어","수학"];
var result = test(arrSubject);
document.write("평균 점수는" + result + "점입니다.");

 

arrData.length가 국어,수학 총 2이기 때문에 arrData.length(2)만큼 반복문을 실행합니다.

결과화면

 

var num=1;
function gallery(direct){
	if(direct){
		if(num === 4)return;
		num++;
	}else{
		if(num == 1)return;
		num--;
	}
	var img = document.getElementById("photo");
	img.setAttribute("src","img/img_"+num+".jpg");
}
<div id="photobox">
  <p><img src="img/img_1.jpg" id="photo" style="width:300px; height:300px;"></p>
  <p>
    <button onclick="gallery(0)">이전</button>
    <button onclick="gallery(1)">다음</button>
  </p>
</div>

이전/다음 버튼을 눌러서 파일명 뒤에 숫자가 1씩 +또는 -되어 다음이미지, 이전이미지가 나옵니다.

재귀 함수 호출

함수 정의문 내에서 작성한 코드로 함수를 다시 호출하는 것을 재귀함수 호출이라고 합니다.

기본형은 아래와 같습니다.

 

재귀함수는 적용하여 1~10까지 값을 출력하는 문제입니다. 

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

결과 값은 1~10까지 출력된 후 종료됩니다.

 

 

전역 변수와 지역 변수

전역 변수는 자바스크립트 어디에서는 사용할 수 있는 변수,지역 변수는 함수 스코프에서만 사용할 수 있는 변수입니다. 

아래는 전역 변수와 지역 변수를 선언하는 기본형입니다. 

var 변수명; //전역변수

functino 함수명(){
	var 변수명;//지역변수
}

 

같은 이름의 함수가 만들었을 경우.

var num=100;
function menu(){
	num += 100;
	alert(num);
}
menu();
//a
function menu(){
	alert(num);
}
//b

a함수는 제거되고 b함수만 호출됩니다. => 결과값 100이 출력됨

 

다음은 a함수와 b함수가 변수와 지역함수를 선언하고 충돌을 방지한 예문입니다.

(function(){
	var num=100;
	function menu(){
		num += 100;
		alert(num);
	}
	menu();
}());
//a
(function(){
	function menu(){
		alert(num);
	}
}());
//b

a함수 결과값(200)이 정상적으로 출력되는 것을 확인할 수 있습니다.

728x90
반응형

'IT > JavaScript' 카테고리의 다른 글

[javaScript] 함수3  (2) 2020.01.12
[javaScript] 함수1  (0) 2019.12.30
[javascript] 브라우저모델 BOM  (0) 2019.12.30
[javascript] - 내장객체(문자열)  (0) 2019.12.26
[javascript] - 내장객체(배열)  (0) 2019.12.25

댓글