[JS ES6] JS 함수 업그레이드하기 (default parameter, arguments)

gminnimk·2025년 3월 20일

JS ES6

목록 보기
9/31

1️⃣ Default 파라미터 (기본 매개변수)

함수를 정의할 때, 만약 인자를 전달하지 않으면 기본값을 설정할 수 있습니다.

문법:

function 함수명(매개변수1, 매개변수2 = 기본값) {
  // 코드 실행
}

예제 1: 기본값으로 숫자 할당하기

function 더하기(a, b = 10) {
  console.log(a + b);
}

더하기(1); // 출력: 11
  • 설명:
    • 매개변수 a에는 1이 할당되고, b는 인자가 없으므로 기본값 10이 사용됩니다.
    • 결과적으로 1 + 10 = 11이 콘솔에 출력됩니다.

예제 2: 수학 연산 사용하기

function 더하기(a, b = 2 * 5) {
  console.log(a + b);
}

더하기(1); // 출력: 11
  • 설명:
    • b의 기본값으로 2 * 5가 평가되어 10이 할당됩니다.

예제 3: 다른 매개변수를 활용한 기본값

function 더하기(a, b = 2 * a) {
  console.log(a + b);
}

더하기(3); // 출력: 9
  • 설명:
    • b의 기본값은 2 * a로, a가 3일 때 2 * 3 = 6이 할당됩니다.
    • 결과적으로 3 + 6 = 9가 출력됩니다.

예제 4: 함수 호출을 기본값으로 사용하기

function 임시함수(){
  return 10;
}

function 더하기(a, b = 임시함수()) {
  console.log(a + b);
}

더하기(3); // 출력: 13
  • 설명:
    • 매개변수 b가 제공되지 않으면, 임시함수()가 실행되어 반환된 값(10)이 기본값으로 사용됩니다.
    • 결과적으로 3 + 10 = 13이 출력됩니다.

2️⃣ 함수의 arguments (ES5 문법)

arguments는 함수 내에서 사용 가능한 내장 객체로, 함수에 전달된 모든 인자들을 배열과 비슷한 형태로 관리할 수 있게 해줍니다.

기본 사용법

function 함수(a, b, c) {
  console.log(arguments);
}

함수(2, 3, 4); // 출력: [2, 3, 4]와 유사한 객체
  • 설명:
    • arguments는 함수에 전달된 모든 인자들을 순서대로 담고 있는 배열 유사 객체입니다.

개별 인자 접근하기

function 함수(a, b, c) {
  console.log(arguments[0]); // 2
  console.log(arguments[1]); // 3
  console.log(arguments[2]); // 4
}

함수(2, 3, 4);

반복문을 사용해 모든 인자 출력하기

function 함수(a, b, c) {
  for (var i = 0; i < arguments.length; i++){
    console.log(arguments[i]);
  }
}

함수(2, 3, 4);
// 콘솔에 차례대로 2, 3, 4 출력
  • 설명:
    • arguments.length를 이용해 전달된 인자의 개수를 확인하고, 반복문을 통해 모든 인자를 순회할 수 있습니다.

3️⃣ 추가 정보

  • 참고:
    ES6부터는 arguments 대신 rest 파라미터 문법 (...args)이 도입되어 보다 편리하게 함수의 나머지 인자들을 배열로 받을 수 있게 되었습니다.
    이 내용은 다음 강의에서 다루기로 합니다.

📌 정리

  • default parameter
    • 함수 정의 시 인자가 전달되지 않을 때 기본값을 제공하여 에러를 방지하고, 함수의 유연성을 높입니다.
  • arguments
    • ES5에서 제공한 기능으로, 전달된 모든 인자를 배열과 유사하게 다룰 수 있게 해주지만 정식 배열이 아니므로 몇 가지 제약이 있습니다.
  • 향후 학습:
    • ES6의 rest 파라미터를 활용하면 arguments 보다 더 직관적이고 간결하게 인자들을 관리할 수 있습니다.

0개의 댓글