함수를 정의하면서 함수 선언식의 괄호 ()
안에 어떤 변수명
을 쓰면, 그걸 매개변수
라고 부른다. 그 이름처럼 실제로 함수 안쪽에서 변수와 같은 역할을 하게된다.
함수가 호출될 때, 값을 전달받으면 매개변수 값이 정의된다.
어떠한 함수를 호출할 때, 호출문의 괄호안에 어떤 값 또는 정의된 변수를 쓰면 우리는 그걸 인자
라고 부른다.
함수에서 매개변수를 적어둔 상태라면, 호출시 인자로 전달한 값을 매개변수를 통해 사용가능해진다.
// doubleNumber 함수 선언식
function doubleNumber(myNumber) { // <- 호출시 전달받은 값을 myNumber 라는 변수명으로 함수 안쪽에서 사용하겠다.
let myResult = myNumber * 2
return myResult
}
// doubleNumber 함수 호출문
doubleNumber(3); // <- doubleNumber를 호출하면서 값 3을 전달해주겠다.
해당 예시 코드에서 dobleNumber 함수가 선언되면 괄호안의 myNumber라고 썼기에, myNumber 매개변수가 함수에서 선언된다.
doubleNumber 함수를 호출할 때는 인자로 3을 넣게된다.
인자로 전달된 값 3은 매개변수 myNumber에 정의된다. 인자에 값을 넣을때는 그 값을 직접 타자로 쳐 줄 필요는 없다. 어떤 변수에 정의된 값이라면 그 변수를 인자로 전달해주면 함수 전달될 때, 담겨져있던 값이 전달된다.
let someNumber = 42
doubleNumber(someNumber); // <- doubleNumber를 호출하면서 값 42를 전달
여러 개의 데이터를 전달받는 함수에 대해서 알아보자.
함수에 인수가 한 개가 아닌 여러 개를 전달할 수도 있다.
function alertSuccess(month, name) {
alert(month + "월의 당첨자는 " + name + "입니다.");
}
alertSuccess("3", "김개발");
function meetAt(year, month, day){
if (arguments.length == 1){
return year+"년";
} else if (arguments.length == 2){
return year+"년 " + month + "월";
} else {
return year+"/"+month+"/"+day;
}
}