
224
8장 함수
8.3
자바스크립트 함수는 매개변수로 어떤 타입을 받는지 정의하지 않으며, 함수 호출
시점에서도 전달받은 값의 타입을 체크하지 않습니다. 자바스크립트는 함수를 호
출할 때 전달받은 인자의 개수조차 체크하지 않습니다. 이어지는 하위 절에서는 함
수가 선언된 매개변수보다 더 많거나 더 적은 인자를 받았을 때 어떻게 동작하는지
설명합니다. 함수가 부적절한 인자로 호출되지 않도록 함수 인자 타입을 명시적으
로 테스트하는 방법도 설명합니다.
8.3.1
선언된 매개변수보다 적은 인자로 함수를 호출하면, 대응하는 인자가 없는 매개변
수는 기본 값으로 정해지며 일반적으로 이 값은
undefined
입니다. 함수를 만들 때 일
부 인자가 선택 사항이 되도록 하면 유용할 때가 많습니다. 다음 예제를 보십시오.
//
객체
o
의
열거
가능한
프로퍼티를
배열
a
에
추가하고
a
를
반환합니다
.
// a
를
생략하면
새
배열을
생성해
반환합니다
.
function getPropertyNames(o, a) {
if (a
===
undefined) a
=
[]; //
정의되지
않았으면
새
배열을
사용합니다
.
for(let property in o) a.push(property);
return a;
}
// getPropertyNames() ...