In this post, we will check an example of recursion with default function parameter of es6 JavaScript. Mind you, there is no benefit of doing the recursion this way. On the contrary, it is always better to write a more readable recursion algorithm within the body of the function. This is just for the sake of demonstration!
Fibonacci Example
Fibonacci generator is the most common recursive method. Here’s how its implementation looks like in JavaScript:
const fibonacci = (num) => {
if (num < 2) {
return num;
}
else {
return fibonacci(num - 1) + fibonacci(num - 2);
}
}
console.log(fibonacci(12)); // 144
You can observe the recursion happening when fibonacci
is called from within the body of fibonacci
. We can do the same recursion using default parameter as below:
const fibonacci = (num = 2, x = num >= 2 ? fibonacci(num - 1) + fibonacci(num - 2) : num) => x;
console.log(fibonacci(12)); // 144
Here note that x
is the second parameter in which we conditionally call the fibonacci
if num
is greater than equal to 2, else we assign num
to x
. This is the same fibonacci logic we perform in the body of the first example. But here the logic is performed before it even goes to the body of the function.
Again, there’s no conceivable reason why would you do that. So please don’t!
See also
- SignatureDoesNotMatch: The request signature we calculated does not match the signature you provided. Check your key and signing method.
- Yup Date Format Validation With Moment JS
- Yup Number Validation: Allow Empty String
- Exactly Same Query Behaving Differently in Mongo Client and Mongoose
- JavaScript Unit Testing JSON Schema Validation
- Reduce JS Size With Constant Strings
- JavaScript SDK