자바스크립트의 함수의 인자는 명시적으로 작성되지 않을 수 있다.
이때, 함수의 인자를 사용할 수 있게 arguments 객체가 존재한다.
function printNameAndETC(){
let [name, ...etc] = arguments;
// 구조 분해 할당으로 변수에 인자를 나누어 넣는다.
console.log(name + "님은 " + etc + "입니다!");
}
printNameAndETC("shin", "멋지고", "잘생기고", "좋은 사람");
// shin님은 멋지고,잘생기고,좋은 사람입니다!
printNameAndETC("park", "자상한 사람");
// park님은 자상한 사람입니다!
printNameAndETC("kim");
// kim님은 입니다!
printNameAndETC();
// undefined님은 입니다!
function printNameAndETC(name){
let [nameCopy, ...etc] = arguments;
// 구조 분해 할당으로 변수에 인자를 나누어 넣는다.
console.log(nameCopy + "님은 " + etc + "입니다!");
}
printNameAndETC("jin", "시원시원한 사람");
// park님은 자상한 사람입니다!
function visitedNames(){
console.log(arguments);
const firstVisited = arguments[0];
console.log("첫 방문자는", firstVisited);
for(let i = 1; i < arguments.length; i++)
console.log(arguments[i]);
}
visitedNames("a", "b", "c",
["가", "나", "다"],
{"age" : 200, }, () => {});
/*
모든 인자가 담긴 배열이 출력된다.
첫 방문자는 a
b
c
['가', '나', '다']
{age: 200}
() => {}
*/