default parameter/arguments/rest

Tae_Tae·2024년 7월 11일

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들을 나타내게 된다.

사용 시 주의사항은

  1. 파라미터가 여러 개면 항상 마지막에 rest파라미터를 사용해야한다.
function 함수2(a, ...파라미터들, b){
  console.log(파라미터들)
}

이렇게 중간에 rest 문법을 쓰면 안된다는 것이다.

  1. rest 문법을 한 개 이상 사용할 수 없다.
function 함수2(a, ...파라미터들, ...파라미터들2){
  console.log(파라미터들)
}

이렇게 두 개 사용하면 안됨.

0개의 댓글