더북(TheBook)

3.2.3 기본값은 함수의 인자 수에 포함되지 않는다

함수의 인자 수는 일반적으로 함수가 가지고 있는 공식 선언 매개변수의 수로 정의되며, 자바스크립트에서는 함수의 length 속성에서 가져올 수 있다.

function none() {
}
console.log(none.length); // 0
function one(a) {
}
console.log(one.length);  // 1
function two(a, b) {
}
console.log(two.length); // 2

자바스크립트에서 기본값이 있는 매개변수는 인자 수를 계산할 때 계산되지 않으며 실제로 후속 매개변수도 계산되지 않는다.

function stillOne(a, b = 42) {
}
console.log(stillOne.length);    // 1
function oneYetAgain(a, b = 42, c) {
}
console.log(oneYetAgain.length); // 1

stillOne 함수의 결과는 간단하다. 기본값이 없는 하나의 매개변수와 기본값이 있는 매개변수가 있으므로 그 인자 수는 1이다. oneYetAgain 함수의 결과는 c 매개변수에 명시적인 기본값이 없다는 점에서 더 흥미롭지만 앞에 있는 매개변수에 기본값이 있기 때문에 인자 수에 포함되지 않는다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.