JavaScript 함수 매개변수 구조 분해

구조 분해에는 또 다른 매우 중요한 활용 영역이 있습니다 - 함수 매개변수 전달입니다. 핵심은 다음과 같습니다: 함수가 매개변수로 배열을 받는 경우, 우리는 함수 선언에서 직접 해당 배열을 어떻게 구조 분해할지 지정할 수 있습니다.

예제를 통해 살펴보겠습니다. 연도, 월, 일을 포함하는 배열을 매개변수로 받는 함수가 있다고 가정해 봅시다:

javascriptfunc([2025, 12, 31]);

이제 함수의 매개변수 부분에서 직접 이 배열을 어떤 변수들로 분해해야 하는지 지정해 보겠습니다:

javascriptfunction func([year, month, day]) {
  console.log(year);  // 2025 출력
  console.log(month); // 12 출력
  console.log(day);   // 31 출력
}

위의 구조는 함수의 하나의 매개변수로 간주해야 합니다. 원한다면 더 많은 매개변수를 추가할 수 있습니다:

javascriptfunc('str1', [2025, 12, 31], 'str2');

function func(param1, [year, month, day], param2) {
  console.log(param1); // 'str1' 출력
  
  console.log(year);   // 2025 출력
  console.log(month);  // 12 출력
  console.log(day);    // 31 출력
  
  console.log(param2); // 'str2' 출력
}

다음 예제에서는 함수의 첫 번째와 두 번째 매개변수로 배열들이 전달되고 있으며, 우리는 둘 다 구조 분해합니다:

javascriptfunc([2025, 12, 31], [2026, 11, 30]);

function func([year1, month1, day1], [year2, month2, day2]) {
  console.log(year1);  // 2025 출력
  console.log(month1); // 12 출력
  console.log(day1);   // 31 출력
  
  console.log(year2);  // 2026 출력
  console.log(month2); // 11 출력
  console.log(day2);   // 30 출력
}
Задание 1

배운 이론에 따라 다음 코드를 구조 분해를 사용해 수정하세요:

javascriptfunction func(employee) {
  let name       = employee[0];
  let surname    = employee[1];
  let department = employee[2];
  let position   = employee[3];
  let salary     = employee[4];
}

func( ['John', 'Smit', 'development', 'programmer', 2000] );
Задание 2

배운 이론에 따라 다음 코드를 구조 분해를 사용해 수정하세요:

javascriptfunction func(employee) {
  let name     = employee[0];
  let surname  = employee[1];
  let info     = employee[2];
}

func( ['John', 'Smit', 'development', 'programmer', 2000] );
Задание 3

배운 이론에 따라 다음 코드를 구조 분해를 사용해 수정하세요:

javascriptfunction func(employee) {
  let name       = employee[0];
  let surname    = employee[1];
  let department = employee[2];
  
  let position;
  if (arr[3] !== undefined) {
    position = arr[3];
  } else {
    position = 'junior';
  }
}

func( ['John', 'Smit', 'development'] );
Задание 4

배운 이론에 따라 다음 코드를 구조 분해를 사용해 수정하세요:

javascriptfunction func(department, employee, hired) {
  let name     = employee[0];
  let surname  = employee[1];
  
  let year  = hired[0];
  let month = hired[1];
  let day   = hired[2];
}

func( 'development', ['John', 'Smit'], [2018, 12, 31] );