함수 호출 시 입력한 인자가 담겨있는 객체
function check() {
console.log(arguments);
}
const ret = check(1, 3, 5, "7");
// 실행 결과
[object Arguments] {
0: 1,
1: 3,
2: 5,
3: "7"
}
어떤 값이 넘어올 지 모를 때 이것을 이용할 수 있다. 이것을 이용하여 넘어오는 파라미터들을 배열로 변경하여 사용할 수도 있다.
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]);