# JavaScript Recursion With Default Function Parameter

## With Fibonacci Example

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!