JS/Javascript

[Javascript] 함수의 매개변수

ui-o 2023. 1. 7. 17:29
반응형

•  기본 매개변수

  - 항상 같은 매개변수를 반복하는 경우 기본값을 지정하여 기본 매개변수를 사용
  - 매개변수는 왼쪽부터 처리하므로 기본값을 사용하는 경우 후순위로 매개변수 나열

  * 기본 문법

함수명(매개변수, 매개변수=기본값, 매개변수=기본값) {}
function func(b, a = 1) {
  console.log(b, a);
}

func(5); // 5, 1

 

•  나머지 매개변수

: 매개변수의 개수가 가변일 경우 사용하는 문법
  - 마침표 3개를 입력
  - 매개변수들이 배열로 들어옴
 * 기본 문법

function 함수(...나머지 매개변수) {}
function sample(...item) {
 return item
}

console.log(sample(1, 2,3)) // [ 1, 2, 3 ]

  •  나머지 매개변수와 일반 매개변수 조합

   - 지원하지 않는 경우 arguments를 사용하여 구현
    * 기본 문법

function 함수명(매개변수, 매개변수, ...나머지 매개변수) {}
function sam(a, b, ...c) {
  console.log(a, b, c);
}

sam(1, 2, 3, 5, 4);  // 1 2 [ 3, 5, 4 ]

// + 지원하지 않는 경우 arguments를 사용하여 함수 구현
function sam() {
  for (let i = 0; i < arguments.length; i++) {
    console.log(arguments[i]);
  }
}

sam(1, 2, 3, 5, 4); // 1, 2, 3, 5, 4

  • Sources

    * 최솟값 구하기

function min(first, ...rests) {
  let output, items;
  if (Array.isArray(first)) { // 배열인지 확인
    output = first[0];
    items = first;
  } else if (typeof first === 'number') {
    output = first;
    items = rests;
  }

  for (const item of items) {
    if (output > item) {
      output = item;
    }
  }
  return output;
}

console.log(min(32, 43, 41, 35)); //32
console.log(min([32, 43], 41, 35)); //32

•  전개 연산자

: 배열을 전개해서 함수의 매개변수로 전달 
  - 배열 앞에 마침표 3개를 붙임 
  - 지원하지 않는 경우 apply() 사용
  * 기본 문법

함수명(...배열)
function callA(...items) {
	console.log(items);
}

const array = [1,2,3,4];
// 전개 연산자를 사용하지 않은 경우
callA(array) // [ [ 1, 2, 3, 4 ] ] - 배열 형태로 들어옴
// 전개 연산자를 사용한 경우
callA(...array) // [ 1, 2, 3, 4 ] - 숫자가 하나하나 들어옴

// + 지원하지 않는 경우 apply() 사용하여 함수 구현
function callA(...items) {
  console.log(items);
}

const array = [1, 2, 3, 4];
console.log(callA.apply(null, array));
반응형