1. 자바스크립트 함수의 인수(파라미터,매개변수) 특징/유의점
ㅇ 호출/피호츨 인수의 개수가 불일치할 수 있음
- 즉, 인수의 개수를 체크하지 않음
- 심지어, 모든 인수가 생략 가능 (단, 뒷쪽 인수부터 생략 가능)
ㅇ 값이 전달되지 않은 인수는,
- `undefined`로 주어짐
ㅇ 인수의 값 설정이 다양함
- 인수 값 설정이, 옆의 다른 인수, 함수 결과값 등으로도 지정 가능
- 함수 정의문에서, 가인수에 디폴트값 설정 가능
. 例) function getFunction(인수1 = 값1, 인수2 = 값2) { ... }
. 단, `null`/`false`/`0`/`빈 문자열` 등이 전달될 경우에는, 디폴트값이 적용되지 않음
. 다만, undefined 값일 경우에는 디폴트값이 그대로 적용됨
- 함수 호출문에서, 실인수에 객체 리터럴 형식으로 설정 가능
. 例) getFunction ( { 인수1:값1, 인수2:값2 } );
ㅇ 가변길이 인수 가능
- 이는, 함수 선언시에 인수 개수를 확정할 수 없는 경우에 해당됨 ☞ 아래 2.항 참조
ㅇ 객체 리터럴 형식으로 인수 값 전달 가능
- 함수호출문 : getFunction ( { 인수1:값1, 인수2:값2 } )
- 함수정의문 : function getFunction ( { 인수1 = 값1, 인수2 = 값2 } ) { ... }
2. 자바스크립트 함수에서, 가변길이 인수
ㅇ 가변길이 인수의 함수 정의가 가능
- 이는, 함수 선언시에 인수 개수를 확정할 수 없는 경우에 해당됨
- 호출 받는 함수에서, 가인수 앞에 `...` (rest operator) 를 두면,
. 전달된 임의 개수의 인수들을 배열로써 취급함
- 호출 하는 함수에서, 배열로 된 실인수 앞에 `...` (rest operator) 를 두면,
. 배열 인수 그대로가 배열로써 전달됨
3. 자바스크립트 함수에서, 인수의 종류
ㅇ 명시적 인수
- 함수 호출시 function(인수 1,인수 2,...) 처럼 명시적으로 전달되는 것
ㅇ 암묵적 인수
- 함수 호출시 명시적으로 언급된 인수 외에도,
. 암묵적으로, arguments, this 가 전달됨
- arguments 객체 인수 : 언급되어 전달된 모든 인자들을 담고있는 컬렉션
. arguments[0] : 첫번째 인수값, arguments[n-1] : n번째 인수값
. arguments.length : 인수 갯수
. arguments.callee : 현재 실행되고 있는 함수에 대한 참조
- this 참조 인수 : 함수 호출과 관련된 묵시적인 객체를 참조 ☞ this 키워드 참조
. 이를 함수/호출 컨텍스트(function/invocation context)라고도 함