arguments 객체 vs argument 단수형, 개별인수

oYJo·2025년 3월 26일

JavaScript

목록 보기
34/52
post-thumbnail

함수

1️⃣ arguments 객체

함수 내부에서 전달된 모든 인수를 배열처럼 저장하는 객체

  • 일반 함수(function)에서 사용 가능, 화살표 함수에서는 ...rest 사용
  • 배열이 아니라 객체이므로 map, forEach 같은 배열 메서드 사용 불가
function showArguments() {
    console.log(arguments);
    console.log(arguments[0]);  // 첫 번째 인수
}
showArguments(10, 20, 30);

↑ 일반 함수에서 arguments 사용 가능

function showArguments() {
    console.log(arguments);
}
showArguments(1, 2, 3);  // [Arguments] { '0': 1, '1': 2, '2': 3 }
const showArgs = () => {
    console.log(arguments);
};
showArgs(1, 2, 3);  // 오류 발생!

↑ 화살표 함수에서는 arguments를 사용할 수 없다
↑ undefined 발생

const showArgs = (...args) => {
    console.log(args);
};
showArgs(1, 2, 3);  // [1, 2, 3]

대신 ...rest(나머지 매개변수)를 사용해야 함!

2️⃣ argument (단수형, 개별 인수)

함수에 전달된 각각의 인수를 의미하는 일반적인 용어

  • 특정한 키워드가 아니라, 일반적인 단어
  • 함수의 매개변수(parameter)로 전달된 개별 값을 의미
function add(a, b) {  // 여기서 a, b가 각각 "argument"
    return a + b;
}
consolelog(add(3, 5));  // 8

여기서 ab는 각각 "argument" (개별 인수)
전체 인수 목록을 가리킬 때는 arguments 객체를 사용

✔️argument vs arguments
둘은 다른 것이다
argument : 함수의 개별 인수 (특정한 키워드 X, 일반적인 개념)
arguments : 일반 함수에서 사용 가능한 객체 (전달된 모든 인수를 저장)

  • 화살표 함수에서는 사용 불가능 (...rest 사용해야 함)
구분argumentarguments
개별적인 함수 인수함수에 전달된 모든 인수를 담은 객체
형태특정한 키워드 아님 (일반 용어)함수 내부에서 자동으로 생성되는 객체
사용 가능 함수모든 함수에서 사용 가능function에서만 사용 가능 (화살표 함수)
예제function add(a, b) {}a, b가 각각 argumentfunction test() { console.log(arguments); }
profile
Hello! My Name is oYJo

0개의 댓글