자바스크립트 함수 인수

(2020-11-24)

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)라고도 함

JS 함수
   1. JS 함수   2. JS 함수 종류   3. Function 객체   4. JS 함수 인수   5. this 키워드   6. 화살표 함수 (arrow)   7. 중첩 함수 (nested)   8. 즉시실행함수 (IIFE)   9. 콜백 함수 (CallBack)   10. 클로저 (Closure)   11. 고차 함수  


Copyrightⓒ written by 차재복 (Cha Jae Bok)               기술용어해설 후원
"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"