default parameter
함수를 선언할 때 파라미터값을 실수로 안 적은 경우
파라미터에 기본값(default 값)을 줄 수 있다.
function functionName(parameter = n)
{
// 함수 내용
}
사용방법은 파라미터 선언할 때 등호로 입력하면 된다.
그러면 파라미터가 정의되지 않았을 때 등호 오른쪽 값이 발동된다.
function Plus (a, b = 10){
console.log(a + b)
}
Plus(1);
실행결과
11
위 코드에서는 a값은 1로 주었지만 b의 값은 깜박했는데
b = 10으로 초기화 되었기 때문에 받은 파라미터 a의 값 1 + b의 기본값 10 = 11이 나오는 것이다.
default parameter은 단순히 등호로만 사용 뿐 아니라 수학 연산자, 함수도 가능하다.
기본 값에 수학 연산자 사용
function Plus (a, b = 2 + 5){
console.log(a + b)
}
Plus(1);
-------------------------------
실행 결과 : 11
-------------------------------
function Plus (a, b = 10 * a){
console.log(a + b)
}
Plus(1);
-------------------------------
실행 결과 : 11
기본 값에 함수 사용
function fun(){
return 20
}
function Plus (a, b = fun()){
console.log(a + b)
}
Plus(1);
실행결과
21
함수의 arguments
함수의 모든 파라미터들을 전부 한꺼번에 다루고 싶을때 arguments를 사용하면 된다.
function 함수(a,b,c){
console.log(arguments)
}
함수(2,3,4);
실행결과
[Arguments] { '0': 2, '1': 3, '2': 4 }
0번째는 2, 1번째는 3, 2번째는 4에요 라고 알려주고있다.
이 arguments를 하나씩 출력해주고 싶으면
function 함수(a,b,c){
for (var i = 0; i < arguments.length; i++){
console.log(arguments[i])
}
}
함수(2,3,4);
실행결과
2
3
4
arguments 문법보다 쉬운 rest 문법이 존재하는데
Rest 파라미터
함수를 선언할 때 ... 이라는 기호를 파라미터 왼쪽에 추가하면 된다.
function 함수2(a, b, ...파라미터들){
console.log(파라미터들);
console.log(a,b);
}
함수2(1,2,3,4,5,6,7);
실행결과
[ 3, 4, 5, 6, 7 ]
1 2
영어 뜻 그대로 a, b를 제외한 rest(나머지) parameters들을 나타내게 된다.
사용 시 주의사항은
function 함수2(a, ...파라미터들, b){
console.log(파라미터들)
}
이렇게 중간에 rest 문법을 쓰면 안된다는 것이다.
function 함수2(a, ...파라미터들, ...파라미터들2){
console.log(파라미터들)
}
이렇게 두 개 사용하면 안됨.