Trabalhando com recursão em JavaScript

Na programação, existe um conceito chamado recursão - é quando uma função chama a si mesma. Vamos ver um exemplo. Vamos exibir números de 1 a 10 usando recursão:

javascriptlet i = 1;

function func(){
  console.log(i);
  i++;
  
  if (i <= 10){
    func(); // aqui a função chama a si mesma
  }
}
func();

Vamos discutir como este código funciona.

Temos uma variável global i e uma função func, dentro da qual o conteúdo da variável i é exibido no console, e então um ++ é feito.

Se nossa variável i for menor ou igual a 10, a função é chamada novamente. Como a variável i é global, em cada nova chamada da função, ela terá o valor definido durante a chamada anterior da variável i.

Isso fará com que a função continue chamando a si mesma até que i se torne maior que 10.

Observe que, no nosso caso, não é possível executar a função sem o if - se fizermos isso, teremos uma chamada infinita de funções.