JavaScript question detail
How to find the number of parameters expected by a function?
The function's object has a length property which tells you how many formal parameters expected by a function. This is a static value defined by the function, not the number of arguments the function is called with(arguments.length). The basic usage of length propery is,
function multiply(x, y) {
return x * y;
}
function sum(a, b, c) {
return a + b + c;
}
console.log(multiply.length); //2
console.log(sum.length); //3
But there are few important rules which needs to be noted while using length property.
- Default values: Only the parameters which exists before a default value are considered.
function sum(a, b = 2, c = 3) {
return a + b + c;
}
console.log(sum.length); // 1
- Rest params: The rest parameters are excluded with in length property.
function sum(a, b, ...moreArgs) {
let total = a + b;
for (const arg of moreArgs) {
total += arg;
}
return total;
}
console.log(sum.length); // 2
- Destructuring patterns: Each destructuring pattern counted as a single parameter.
function func([a, b], { x, y }) {
console.log(a + b, x, y);
}
console.log(func.length); // 2
Note: The Function constructor is itself a function object and it has a length property of 1.