함수의 전달인자(argument)를 통해 전달받은 인자
Parameter 갯수가 유동적일 때, parameter를 지정하는 방법
매개변수가 배열 형태로 전달된다.(Array 인스턴스)
메서드가 바로 인스턴스에 적용될 수 있다. (= 배열 method 사용 가능)
function getMaxNum(...nums){
// nums자리에 arguments만 빼고 다 가능, arguments는 예약어
console.log(nums);
}
getMaxNum(3, 5, 8, 10, 14, 21);
//console에는 (6) [3, 5, 8, 10, 14, 21] 이 찍힌다.
function getMaxNum(param1, ...nums){
console.log(param1);
console.log(nums);
}
getMaxNum(3, 5, 8, 10, 14, 21);
// 콘솔에는 3 과 (5) [5, 8, 10, 14, 21] 이 찍힌다.
// rest-parameter는 원래 있던 인자가 커버할 수 없는 나머지를 커버한다
전달인자로 받은 arguments는 배열이 아니다., 유사배열
.length
는 사용 가능
다른 배열 method는 사용할 수 없다.
arguments는 모든 함수에서 사용 가능하다.
bind()
, call()
또는 apply()
메서드로 arguments 객체를 배열 형태로 만들 수 있다.
function getMaxNum(){
console.log(arguments); // {0:3, 1:5, 2:8, 3:10} 유사배열
}
getMaxNum(3, 5, 8, 10);
매개변수에 기본값 할당하기
문자열/숫자/객체 등 어떤 타입도 가능하다.
function getRoute(destination , departure='ICN'){
return '출발지: ' + departure + ', ' +'도착지: ' + destination;
}
getRoute('PEK'); //'출발지: ICN, 도착지: PEK'
전달 인자에 기본값으로 undefined
를 넘겨줬을 때, 변수의 값을 Default Parameter로 할당한 값으로 처리한다.
function getRoute(destination='ICN' , departure){
return '출발지: ' + departure + ', ' +'도착지: ' + destination;
}
getRoute(undefined, 'PEK'); //'출발지: ICN, 도착지: PEK'