const argumentsTest = function(){
console.log(arguments); //에러?
}
argumentsTest(); // Arguments(0)
argumentsTest('a','b','c'); // Arguments(3)
arguments 객체란?arguments[0], arguments[1] …)map, forEach 등)는 직접 쓸 수 없음.argumentsTest();인자 없음 → arguments는 비어있는 객체처럼 출력됨.
콘솔 출력:
Arguments(0) []
argumentsTest('a','b','c');인자 3개 전달 → arguments에 모두 저장됨.
콘솔 출력:
Arguments(3) ['a', 'b', 'c', callee: ƒ, Symbol(Symbol.iterator): ƒ]
(브라우저/Node.js 환경에 따라 출력 모양이 조금 다름)
일반 함수 표현식(function(){}) 안에서는 arguments 사용 가능 → 에러 아님.
화살표 함수(() => {}) 안에서는 arguments가 없음 → 이 경우 진짜 에러 발생.
const test = () => {
console.log(arguments); // ReferenceError
}
Arguments(0) []
Arguments(3) ['a', 'b', 'c']
👉 정리:
arguments는 모든 인자를 담은 유사 배열 객체.