[HTML] 함수연습 +return

비타민규·2023년 8월 6일

[HTML]

목록 보기
17/25

js에서 함수에 대해 배워보자


<script>

	let count = 0;
	function aa(){
		count +=1;
		// return; 함수의 무조건 탈출
		document.write(count + "번 수행<br>");
	}
	
	function bb(){
		document.write("<br>bb 함수처리");
		cc(5);
		document.write("<br>bb함수 처리 완료");
		
		document.write("<br>", cc(5));
		
		// 위 한줄과 아래 두줄이 같은 말
		//result=cc(5);
		//document.write("<br>",result);
		
		document.write("<br>", cc("kor"));
		document.write("<br>");
		dd(5,10);
		dd(5);
		dd(); // undefined로 나옴
		dd(5,10,15); // 마지막은 무시됨
		// 자바였으면 타입, 아규먼트 갯수가 달라 오류나고 프로그램 끝남
		
	}
	function cc(arg){ // 매개변수가 있는 함수
		let kk = arg+10;
		document.write("<br>kk : "+kk);
		// return undefined; // js는 반드시 값 하나를 리턴하는데 기본값이 undefined이다.
		// 🥎함수의 반환값은 기본이 undefined(생략하면 기본값 적용)
		return kk;
	}
	
	function dd(a,b){ // a,b는 지역변수
		document.write("<br>", a,' ',b);
		
	}
</script>

</head>
<body>

<script>

	aa();
	aa();
	bb();
	cc(10);
	// 이 함수들을 script밖에서 호출하면 그냥 문자값(html 내부)으로 호출됨. js내에서 함수로 가능한거
	
	(function kbs(){
	document.write("<br>대한민국 대표방송")
	})(); // 일회용, 자기 혼자 실행함
	
</script>

마지막에 써준 일회용은 IIFE(Immediately Invoked Function Expression)이라 한다.
선언과 동시에 출력하고 사용법은 앞. 뒤로 ()로 묶어서 사용한다.

출력값 :

🥎함수의 반환값과 관련하여

js에서 함수는 반드시 값 하나를 리턴한다고 썼다.
예를들어,

> function cc(arg){ // 매개변수가 있는 함수
	document.write(arg);
		return arg;
	}
> cc("cup");
> documet.write(cc("cup"));

이렇게 cc함수를 두 번 호출했다 가정.

cc("cup");에서는 cup만 출력된다.
documet.write(cc("cup"));에서는 return값과 함께
cup이 두 번 출력된다.
즉, return값이 같이 출력되는 경우는 함수만 호출할 때가 아닌 document.write로 호출했을 때만 return값도 출력이 되는 것이다.

  • return값을 안 주면 기본값으로 undefined가 출력된다.

cc(); document.write(cc()); 와 같이 인자값을 아예 안주게 되면 undefined로 cc에서 1번, document에서 2번 해서 총 3개의 언디파인드가 출력된다.

정리하자면, 함수에서 return값을 '안 주게 되면' document.write로 출력했을 때 인자값을 넣어도 return기본값인 undefined가 출력되니 헷갈리지 않도록 하자 !!

profile
같이 일하고 싶은 개발자가 되어야지

0개의 댓글