[TIL] 19 - JavaScript) arguments , 인자 갯수에 따른 동작 변화 함수
Q. 여러 인자를 받았을 때 인자의 개수에 따라 다른 형태를 리턴해주세요.
일반적으로 함수를 사용할 때는 함수에 주어진 인자(argument)개수에 맞춰 정확하게 호출해야 하지만, JavaScript는 예외이다.
- 함수의 인자 개수보다 적게 함수를 호출했을 때
-> 비게 된 인자는 undefined 값이 할당된다. - 함수의 인자 개수보다 많게 함수를 호출했을 때
-> 따로 에러가 뜨지않고 초과된 인수는 무시된다.
함수를 작성할 때, 런타임 시 호출된 인자의 개수를 확인하고 그 개수에 따라 동작이 달라져야 할 때 arguments 객체를 사용한다.
자바스크립트에서는 함수를 호출할 때,
인수들과 함께 arguments 객체가 함수 내부로 전달되기 때문인데, arguments 객체는 함수를 호출할 때 넘긴 인자들이 배열형태로 저장된 객체이다.
하지만 배열 형태일뿐 실제 배열이 아닌 '유사 배열 객체' 이다.
arguments 객체 직접 알아보기
arguments 객체는 세 부분으로 구성되어 있다. (_proto_ 프로퍼티 제외)
-
함수를 호출할 때 넘겨진 인자 >> 첫 번째 인자는 index 0, 두 번째 인자는 index 1 (배열 형태)
-
length 프로퍼티 >> 호출할 때 넘겨진 인자의 개수
-
callee 프로퍼티 >> 현재 실행중인 함수의 참조값 (사진의 add()함수)
length 프로퍼티가 있어 배열과 유사하게 동작하지만, '유사 배열 객체' 이므로 배열 메서드는 사용할 수 없다.
arguments 객체를 활용하는 곳
- 매개변수 개수가 정확하게 정해지지 않은 함수를 구현할 때
- 전달된 인자의 개수에 따라 서로 다른 처리를 해줘야 하는 함수를 개발할 때
function meetAt(year, month, date) {
let length = arguments.length;
Author And Source
이 문제에 관하여([TIL] 19 - JavaScript) arguments , 인자 갯수에 따른 동작 변화 함수), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@winter_ya/TIL-19-JavaScript-arguments-인자-갯수에-따른-동작-변화-함수저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)