oris9
[Javascript] 파라미터? 인자? 헷갈리는 용어 정리와 argument 객체, 나머지 매개변수에 대해 알아보기 본문
[Javascript] 파라미터? 인자? 헷갈리는 용어 정리와 argument 객체, 나머지 매개변수에 대해 알아보기
oris9 2024. 3. 9. 15:16
1. 파라미터(parameter), 매개변수
`parmeter` 는 기본적으로 함수를 정의할 때, 사용되는 것으로
function f(x, y) { // 이때, x y가 매개변수가 된다
return x + y;
}
f(1,2);
이름에서 알 수 있듯이 값이 아닌 `변수`이다.
2. 전달인자, 인자, 인수, argument
제목에서와 같이 `arguments` 는 전달인자, 인자, 인수, argument로 번역될 수 있다.
전달인자라는 것은, 기본적으로 함수를 호출할 때 인자로 집어넣게 되는 값들을 이야기한다.
함수에 넘겨주기위해 끌어오는 `값`이다.
즉,
function sum(x, y) {
return x + y;
}
sum(1,2); // 이때 1, 2가 전달인자가 된다.
만약 함수를 정의할 때 받을 매개변수를 정의하지 않고 함수에 인자를 여러개 넣어 호출하게 되면
자바스크립트는 자동적으로 `arguments객체`를 생성해 함수에게 전달한다.
3. arguments객체
** 주의 ! 화살표 함수는 arguments객체를 자동으로 생성하지 않는다. 지원하지 않는다.
이렇게 자동적으로 생성된 `arguments객체`는 배열의 형태로 넘겨진 인자값을 포함하고 있는데,
주의해야할 것은 이때 arguments객체는 배열의 형태를 띄고있지만 배열이 아닌 `유사배열객체`라는 것이다.
따라서 배열에 포함된 메서드들은 사용할 수 없고,
`console.log(arguments)` 를 찍어 내부에 전달된 arguments 객체를 확인할 수 있다.
4. 나머지 매개변수(rest parameter)
ES6에서 새로 도입된 개념으로, arguments 객체를 대신해 사용할 수 있는 개념이다.
함수 정의시, 매개변수 넣을 때 마지막에서 `...` 연산자를 통해서 나머지 매개변수를 정의할 수 있다.
(마지막 순서로 넣어야한다.)
이렇게 되면, 함수 호출시 정의된 매개변수의 갯수를 넘어가는 인자들은 마지막에 정의된 나머지 매개변수 안에 담기게된다.
이때 나머지 매개변수는 배열로 담기며,
arguments객체와 달리 유사배열객체가 아닌 배열이므로 배열 메소드를 사용할 수 있다는 장점이 있다.
function func(x, y, ...args) {
console.log(args)
};
func(1,2,3,4,5); // [3,4,5]
'JavaScript' 카테고리의 다른 글
[Javascript] 정규표현식(RegExp, regular expression) 정리하기 (0) | 2024.03.11 |
---|---|
[Javascript] 유용한 배열 메서드 정리하기 (0) | 2024.03.10 |
웹브라우저에서의 저장소에 대해 알아보기 (로컬스토리지, 세션 저장소, IndexedDB) (0) | 2024.03.08 |
[javascript] 리터럴과 타입에 대해 정리하기 (0) | 2024.03.07 |
[Javascript] 클래스를 이해하고 모듈화 해보기 (0) | 2024.03.04 |