매개변수
매개변수는 함수가 정의될 때, 함수의 입력값을 받을 "변수"를 나타냅니다. 함수 선언에서 사용되며, 함수가 호출될 대 전달될 값을 지정합니다.
인자값(인수)
호출문이 함수에게 전달하는 "값"입니다. 매개변수에 대응하는 값으로, 함수 호출 시 사용된다. 인수와 매개변수는 1:1 대응관계를 이루면서 매개변수에 값을 전달한다.
매개변수 규칙
일반적으로 프로그래밍 언어에서는 인수와 매개변수가 1:1 대응관계를 가진다. 따라서 다른 언어에서는 인자의 수와 매개변수의 수가 일치하지 않으면 다른 함수로 인식된다.
그러나 자바스크립트는 1:1 대응관계를 유지하지 않아도 인수를 매개변수에 할당할 수 있다. 인수는 함수를 호출 할 때 호출 함수에 나열된 값을 리스트이다 .
**매개변수 기본 원칙
1. 자바스크립트는 매개변수에 대한 데이터 유형을 지정하지 않는다.
2. 자바스크립트 함수는 받은 인수의 수를 확인하지 않는다.
3. 함수 이름은 같으도 매개변수가 여러가지인 경우 가장 많은 매개변수를 가지고 있는 함수에만 호출 함수가 적용된다.
매개변수 개수보다 인수가 적으면 매칭되지 않은 매개변수는 'undefined'라고 지정되고, 반대로 인수가 많으면 초과된 인수는 무시한다.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
function print (x,y) {
document.write(`${x}가 ${y}개 있습니다 <br>`)
}
print('사과',10);
print('사과');
print('사과','수천',500,"완판");
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
function print(fruit, count) {
if (count == undefined) {
count = 10;
document.write(fruit + "가 " + count + "개 있습니다.");
} else {
document.write(fruit + "가 " + count + "개 있습니다.")
}
}
print("사과");
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
function print(fruit = "바나나", count = 10) {
document.write(`${fruit}가 ${count}개 있습니다.<br>`)
}
print("사과");
print("오렌지");
print("바나나");
print("키위");
print("배");
</script>
</body>
</html>