Front-End

JavaScript-Function(2)

NellKiM 2024. 11. 10. 18:29
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>

<script>
	function myDisplayer(something) {
		//전달받은 값을 화면에 출력
		document.getElementById("here").innerHTML = something;
	}
	
	
	function myDisplayer2(something) {
		//전달받은 값을 화면에 출력
		document.getElementById("here2").innerHTML = something+"!!!!!!!!!!!!!!!!!!";
	}
	
	
	function myCalculator(num1, num2, myCallback) {
		//값2개 , 함수를 받아서 계산 결과와 받은함수를 실행
		let sum = num1 + num2;
		myCallback(sum);
	}

	function call1(){
		//값2개와 무엇을할지 함수를 보낸다
		myCalculator(5, 5, myDisplayer2);
	}
	function f_timer(){
		//함수를 받아서 함수를 실행하는 JavaScript 내장함수이다.
		timerId = setInterval(myFunction,1000); 
	}
	function myFunction(){
		document.querySelector("#here2").innerHTML += "<br>" + new Date();
	}
	function f_stop(){
		clearInterval(timerId);
	}
	function call2(){
	const add = (function () {
		  let counter = 0;
		  return function () {counter += 1; return counter}
		})();
	//add = function() {counter +1; return counter}
	console.log(add());
	console.log(add());
		add();
		add();
		add();
		}
	
	function call3(){
		var url = "http://localhost:9090/AppleShop/emp/empRegister.jsp?fname=신한" ;
		
		var result = encodeURIComponent(url);
		document.querySelector("#here2").innerHTML += "encode" + result;
		
		var result = decodeURIComponent(url);
		document.querySelector("#here2").innerHTML +="decode" +result;
	}
	
	function call4(){
		var str = "1000";
		document.querySelector("#here").innerHTML += parseInt(str)+20000;
	}
	function call5(){
		f_param();
	//	document.querySelector("#here").innerHTML = f_param(10,20,30);
		document.querySelector("#here").innerHTML = f_param(10);
	}
	//숫자 + undefined => NaN
	// [1] default 값 설정
	function f_param(a,b,c){
		if(!b) b =200;
		if(!c) c = 300;
		
		return a+b+c;
	}
	
	//숫자 + undefined => NaN
	//[2] default 값 설정
	function f_param(a,b,c){
		 b = b || 201;
		 c = c || 301;

		return a+b+c;
	}
	//[3] default 값 설정
	//내부 browser 지원 안됨
	function f_param(a,b=202,c=301){
		 

		return a+b+c;
	}
	function call6(){
		add(1,2,3);
		var arr = [10,20,30];
		add(...arr);
	}
	
	function add(){
		document.querySelector("#here").innerHTML = 
			arguments[0] + arguments[1]+arguments[2]  ;
	}
	function add(...arr){
		document.querySelector("#here").innerHTML +="<br>"+ 
			(arr[0] + arr[1]+arr[2]) + "!!!";
	}
	
	
	/*
	이벤트 : 일어나는 사건 예) click.hover
	이벤트 속성 : 이벤트와 이벤트 핸들러를 연결하는 역할 , 예)onclick
	이벤트 핸들러 : 
	
	*/
	
	function f_h1(){
		document.querySelector("#here").innerHTML +="<br>"+ "onmouseover";
	}
	
</script>

</head>
<body>

	<h1 onmouseover="f_h1()">JavaScript Function</h1>

	<button onclick="call1()">콜백함수</button>
	<button onclick="f_timer()">콜백함수2</button>
	<button onclick="f_stop()">Timer 중지</button>
	<button onclick="call2()">클로저</button>
	<button onclick="call3()">인코딩</button>
		<button onclick="call4()">문자->숫자</button>
<button onclick="call5()">defalut 매개변수</button>

<button onclick="call6()">전개연산자(...)</button>
	<hr>
	<div id="here">여기</div>
	<div id="here2">여기2</div>
	<img src="../resources/images/sunset.jpg">

</body>
</html>