티스토리 뷰

728x90

혹시 scrpit function 호출 시, 전달인자의 갯수를 더 주거나 아니면 덜 준 적이 있는가?

작년 프로젝트에서 처음 function 전달인자 갯수가 다른 것을 접해본 적이 있었다.

그때는 그냥 뭐 이게 뭐야, 잘못됐네. 이러면서 ... 호출이 되긴 했지만 관심 없었다.

근데 이번 프로젝트 기본 구성된 프레임웍을 가지고 개발 시작 전에 잠깐 프레임웍을 훑어보던 중 또 전달인자가 다른 부분을 확인했다. 이번엔 시간도 많으니 한번 궁금해서 찾아봤다.



영어라서 마음에 들지 않지만, 제일 맨 위에 문장을 봐보자.

A JavaScript function does not perform any checking on parameter values (arguments).


음.. 자바 스크립트 함수는 수행하지 않는데, 어느 확인도... 파라미터값들을

즉, 자바 스크립트 함수는 파라미터 채킹을 하지 않는다는 것!


우선 전달인자가 덜 간 경우에는 undefined 값을 뿜어낸다.

전달인자가 무슨 자료형인지는 관심없다.


예1.

  });


이번에는 반대의 경우이다.

전달인자 값이 더 간 경우,


예2.

function sumAll() {

    var i, sum = 0;

    for (i = 0; i < arguments.length; i++) {

        sum += arguments[i];

    }

    return sum;

}


$(function() {

alert(sumAll(1, 2, 3, 4, 5));

});


결과 값은 아래와 같다.



와우, 이럴 수가!!!

별 것들이 다 되네....


그러니까 제일 위에 영어문장 해석한 것을 다시 되새겨 말하자면 전달 값이 달라도 다 무시한 채, 함수는 호출한다는 것이다.

그러니까 이제 전달인자 값이 많으니 뭐니 하지 말고, 값는 전달된다는 걸 알아두자.

반응형
반응형
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday