[JavaScript] Arguments & Rest parameters

Junseo Kim·2020년 8월 17일
0

Arguments

함수 호출 시 입력한 인자가 담겨있는 객체

function check() {
    console.log(arguments);
}

const ret = check(1, 3, 5, "7");

// 실행 결과
[object Arguments] {
  0: 1,
  1: 3,
  2: 5,
  3: "7"
}

Rest parameters

어떤 값이 넘어올 지 모를 때 이것을 이용할 수 있다. 이것을 이용하여 넘어오는 파라미터들을 배열로 변경하여 사용할 수도 있다.

function check() {
    const argArr = Array.prototype.slice.call(arguments);
    console.log(argArr);
}

const ret = check(1, 3, 5, "7");

// 실행 결과
[1, 3, 5, "7"]

이것을 es6부터는 아래와 같이 쓸 수 있다.

function check(...arr) {
    console.log(arr);
}

const ret = check(1, 3, 5, "7");

// 실행 결과
[1, 3, 5, "7"]

spread operator와 헷갈릴 수 있지만, 함수 호출 시 ...을 사용하면 spread 함수의 매개변수에 ...을 사용하면 rest이다

// Rest parametes
function rest(...arr) {
  console.log(arr);  // [1, 2, 3]
}
rest(1, 2, 3);
 
// Spread operator
function spread(x, y, z) {
  console.log(x); // 1
  console.log(y); // 2
  console.log(z); // 3
}
spread(...[1, 2, 3]);

0개의 댓글