Skills/JavaScript
221129 function03.html (나머지 매개변수, 디폴트 매개변수)
개발자 윤구나
2022. 11. 29. 12:07
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>function</title>
<script>
// 가변 매개변수 함수 or 나머지 매개변수 함수 (데이터를 배열로 받는다.)
// 기본 사용법: function name(...변수이름) {}
// 예:
function func(...items) {
document.write(items, "<br />");
console.log(items, "<br />");
}
func(1, 2);
func(1, 2, 3);
func(1, 2, 3, 4);
// ******** 가변 매개변수 함수: min값 찾기 ********
function min(...items) {
let min = items[0];
for (let item of items) {
if (item < min) {
min = item;
}
}
return min;
}
let result = min(45, 6, 83, 62, 5, 59)
document.write(result);
// ******** 가변 매개변수 함수: 변수 + 배열 함께 받기 ********
function func(a, b, ...items) {
// 변수 + 배열로 받아져서 복잡함. 잘 사용하지 않음.
document.write(a, b, items, "<br />");
console.log(a, b, items, "<br />");
}
func(1, 2);
func(1, 2, 3);
func(1, 2, 3, 4);
// 기본 매개변수 함수 or 디폴트 매개변수 함수
// 기본값 적용. (ex. 함수에 b=2라고 지정 해뒀을 때, 값 입력이 안되면 기본값으로 적용함.)
// 예:
function func(a, b = 2) {
// 디폴트 매개변수는 뒤에서부터 값을 채워야한다.
document.write(`${a} and ${b} <br />`);
}
func(1, 1);
func(1);
func(1, 4);
// ******** 디폴트 매개변수 함수: 일주일 수업시간 계산 ********
function studyTime(name, hours = 8, days = 5) {
document.write(`** ${name}님의 주 수업시간 계산 ** <br />`);
document.write(`하루수업 시간: ${hours} <br />`);
document.write(`주 수업일수: ${days} <br />`);
document.write(`일주일 수업 시수: ${hours * days} <br /><br />`);
}
studyTime("홍길동");
studyTime("이순신", 6);
studyTime("윤동주", 5, 6);
// 과제1. 두 값을 받아서 최소값, 최대값 찾고 최소값에서 최대값까지 합구하기
let num1 = parseInt(
prompt("서로 다른 두 수를 입력하세요. (첫번째 정수입력)")
);
let num2 = parseInt(
prompt("서로 다른 두 수를 입력하세요. (두번째 정수입력)")
);
function sumMinMax(a, b) {
let min = 0;
let max = 0;
let sum = 0;
if (a > b) {
max = a;
min = b;
} else {
max = b;
min = a;
}
document.write(`최소값은 ${min}입니다.<br />`);
document.write(`최대값은 ${max}입니다.<br />`);
for (let i = min; i <= max; i++) {
sum += i;
}
return sum;
}
let result = sumMinMax(num1, num2);
document.write(`최소값부터 최대값까지의 합은 ${result}입니다.`);
// 과제2. 디폴트 매개변수 이용해서 아르바이트 월페이 구하기
document.write(`*최저시급 9,160원<br /><br /><br />`);
function ptPay(name, hours = 4, days = 20) {
document.write(`**** ${name}님의 급여명세서 ****<br />`);
document.write(`일일 근무시간: ${hours}시간<br />`);
document.write(`근무일수: ${days}일<br />`);
document.write(`총 근무시간: ${hours * days}시간<br />`);
document.write(`급여: ${hours * days * 9160}원<br /><br />`);
}
ptPay("a");
ptPay("b", 5);
ptPay("c", 4, 8);
</script>
</head>
<body></body>
</html>