KDT/JavaScript

240131 자바스크립트

001cloudid 2024. 1. 31. 17:44
728x90
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>함수</title>
</head>
<body>

<script type="text/javascript">
//함수 매개변수의 기본값 지정하기
function multiple(a, b=2, c=3) {
	return a * b + c;
}

let result = multiple(5,3,5)
document.write("result = " + result +"<br>");
document.write("multiple(5,3,5) = " + multiple(5,3,5) +"<br>");
document.write(`multiple() = ${multiple()}<br>`)
document.write(`multiple(10) = ${multiple(10)}<br>`);
document.write(`multiple(10,20) = ${multiple(10,20)}<br>`);
//함수 호출 시 매개변수 값은 무조건 왼쪽부터 채워짐.
//매개변수값을 기본값을 지정해서 사용할 경우에는 오른쪽 끝에서부터 순서대로 기본값을 설정한 매개변수를 배치. 
</script>

</body>
</html>

 

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>1부터 n까지 숫자를 더하는 함수</title>
</head>
<body>
	<script type="text/javascript">
		function calcSum(n) {
			let sum = 0;
			for (let i = 1; i < n + 1; i++) {
				sum += i;
			}
			document.write(`<h3>1부터 ${num}까지 더한 합은 ${sum}</h3><br>`);
		}

		let num = prompt("얼마까지 더할까요?");
		if (num !== null) {
			calcSum(parseInt(num));
		}
		
		
		function calcMuti(n){
			let multi = 1;
			for (let i = 1; i < n+1; i++){
				multi *= i;
			}
			document.write(`<h3>1부터 ${num1}까지 더한 곱은 ${multi}</h3>`);
		}
		
		let num1 = prompt("얼마까지 곱할까요?");
		if (num1 !== null) {
			calcMuti(parseInt(num1));
		}
		
	</script>
</body>
</html>

 

※함수를 호출 먼저 호출한 후 함수 정의

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>함수</title>
</head>
<body>

<script type="text/javascript">
//함수 선언문 형식에 의한 함수 생성 방법으로 정의한 함수는 함수 호이스팅이 이뤄짐
//함수를 정의하기 전 호출을 해도 에러가 발생하지 않음
document.write(`multiple(10) = ${multiple(10)}<br>`);
function multiple(a, b=2, c=3) {
	return a * b + c;
}
</script>

</body>
</html>

수행된다.

함수 선언문 형식에 의한 함수 생성 방법으로 정의한 함수는 함수 호이스팅이 이뤄짐
함수를 정의하기 전 호출을 해도 에러가 발생하지 않음

하지만 함수를 정의하고 호출하는 식으로 하는 것이 유지보수가 편함

 

<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>익명 함수</title>
</head>
<body>
<script type="text/javascript">
//익명 함수 : 함수에 이름이 없음 → 재활용이 안된다.
//함수 코드 자체를 식으로 취급해서 변수에 할당(대입)함.
//함수 이름이 없는 대신에 할당한 변수명으로 호출함.
let sum = function(a, b) {
return a + b;
}
document.write(`${sum}<br>`);	
document.write(`함수 실행 결과 : ${sum(10,20)}<br>`);
//다른 함수의 매개변수로 사용하기 위해서 사용함.
</script>

</body>
</html>

 

<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>익명 함수</title>
</head>
<body>
	<script type="text/javascript">
		//익명 함수 : 함수에 이름이 없음 → 재활용이 안된다.
		//함수 코드 자체를 식으로 취급해서 변수에 할당(대입)함.
		//함수 이름이 없는 대신에 할당한 변수명으로 호출함.
		let sum = function(a, b) {
			return a + b;
		}
		document.write(`${sum}<br>`);
		document.write(`함수 실행 결과 : ${sum(10,20)}<br>`);
		//다른 함수의 매개변수로 사용하기 위해서 사용함.
	</script>
	<hr>
	<script type="text/javascript">
		//익명 함수 형식 : 함수 이름을 지정하지 않고 변수에 함수를 담아서 저장(함수 객체)
		//함수 수행 시 변수명을 사용하여 호출함
		//함수를 다른 함수의 매개 변수로 넣어주고 함수 내에서 함수를 호출해서 사용하도록 하는 방법
		//호출형식) 변수명(매개변수값)

		//sum함수가 매개 변수로 넘어온다
		function cal(func) {
			let add = func(10, 20);
			document.write(`add : ${add}<br>`);
			return add;
		}

		document.write(`cal함수 : ${cal(sum)}`);
	</script>


</body>
</html>

 

매개변수값이 없는 즉시 실행 함수 

(...생략...)
<script type="text/javascript">
//즉시 실행 함수 : 함수가 정의되는 순간 즉시 실행되는 함수
//매개변수값이 없는 즉시 실행 함수
(function(){
	let userName = prompt("이름을 입력하세요.");
	document.write(`안녕하세요? <span> ${userName} </span>님<br>`);
})();
</script>
(...생략...)

 

매개변수값이 있는 즉시 실행함수

(...생략...)
<script type="text/javascript">
//즉시 실행 함수 : 함수가 정의되는 순간 즉시 실행되는 함수
//매개변수값이 있는 즉시 실행 함수
(function(a,b){
	let sum1 = a + b;
	document.write(`함수 실행 결과 : ${sum1}<br>`);
})(100,200);
	document.write(`함수 실행 결과 : ${sum1}<br>`); //sum1이 지역변수이므로 결과가 나타나지 않음
</script>
(...생략...)

 

매개변수값이 있는 즉시 실행 함수

<script type="text/javascript">
//화살표 함수(fat arrow =>)
//익명 함수에서만 사용할 수 있는 표기법
//function이라는 키워드 대신 '=>(fat arrow)' 이용해서 함수를 생성하는 방식

//1. 매개변수가 없는 경우
const hi = function(){
	return "hi";
}
document.write(`<h3>함수 실행 결과 : ${hi()}</h3>`); //실행

//function 키워드 없음(매개변수만 표시, 소괄호만 표시)
//function 키워드가 => 로 대신
//함수 수행 내용이 한 줄뿐이면 중괄호({})생략, return문 생략 가능
const hi1 = () => { return "hi"}; //fat arrow
// == const hi1 = () => "hi"; 
document.write(`<h3>함수 실행 결과 : ${hi1()}</h3>`); //실행
</script>
<hr>
<script type="text/javascript">
//2. 매개변수가 있는 경우
//매개변수가 1개인 경우 : 매개 변수의 괄호() 생략 가능
let hello = user => {document.write(`<h3>${user} 님, hello</h3>`);}
hello("홍길동");

//매개변수가 2개 이상인 경우
let div = (a,b) => {return a/b};
// == let div = (a,b) => a/b;
document.write(`<h3>함수 수행 결과 : ${div(10,2)}</h3>`);


</script>

 

728x90

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

240205 자바스크립트  (0) 2024.02.05
240201 자바스크립트  (0) 2024.02.01
240129 자바스크립트  (0) 2024.01.29
240125 자바스크립트  (0) 2024.01.25
240124 자바스크립트  (0) 2024.01.24