javascript Ex 9 (함수)

권원중·2023년 6월 9일
0

구디아카데미

목록 보기
23/23
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script>
	//함수 : 자바스크립트의 함수
	console.log(typeof(function(){})); // function type
	// 함수도 참조타입이고 모든 참조타입 객체이다.
	
	let a = function(x, y){
		return x+y;
	};
	console.log(a);
	
	let result = a(1, 3); // () 함수호출 연산자와 함께 사용하면 함수 실행
	 
	console.log('result : ', result); // 4
	
	(function(){console.log('test')})(); // 함수의 이름이 없으므로 = 익명함수호출
	// 매개변수가 있는 익명함수 호출
	(function(x, y) {console.log(x+y);})('goodee', 'hello');
	// a에 함수가 들어가 있어 b도 함수가 들어간다
	let b = a;
	let result2 = b(7,10);
	console.log('result2 : '+result2);
	
	// 함수는 객체이다. 객체는 동적으로 속성추가가 가능 하다.
	console.log(typeof(b)); // function
	//함수에도 속성추가가 가능하다
	b.nicname = '구디아카데미 함수';
	console.log('b.name :' ,b.nicname );
	//함수에 메서드(속성)도 추가 가능하다
	b.play = function(){ console.log('놀다')};
	b.play();
	
	let arr = [
		function(){console.log('첫번째 배열 함수')},
		function(){console.log('두번째 배열 함수')},
		function(){console.log('세번째 배열 함수')}
	];
	// 매개함수가 arr.length만큼 호출되고, 매개함수의 첫번째 매개값은 배열요소, 두번째는 index
	arr.forEach(function(item, idx){ 
			console.log(idx); // 0, 1, 2
			item();
		}
	)
	
	// 1급함수 : 함수코드가 변수에 저장 -> 리턴값, 매개값(콜백함수)
	let c = function(){
		let d ='ccc'
		console.log('ccc')
		let e = function(){
			console.log('eee');
		};
		return e;
	};
	let f = c(); // ccc 
	f(); // eee
	
	c()(); // ccc eee출력됌
	
	//매개값
	let g = function(fun){
		fun();	
	};
	
	let odd = function(){
		alert('짝수 입니다');	
	};
	let even = function(){
		alert('홀수 입니다');	
	};
	let param = null;
	
	
	let num = 7;
	if(num % 2 == 0){
		param = even;
	} else {
		param = odd;
	}
	
	g(param);
	
</script>
</head>
<body>

</body>
</html>

0개의 댓글