1
resposta

[Dúvida] FUNÇÃO GERAR NÚMERO ALEATÓRIO

Não entendi o por quê de os professores retirarem o 'return' da função gerarNumeroAleatorio();. Se não houver retorno, como eles iriam utilizar o valor no projeto?

Tenho dificuldade em entender o return em JS.

function gerarNumeroAleatorio() {
    let NumeroEscolhido = parseInt(Math.random() * 10 + 1);
    if (listaDeNumerosSorteados.includes(NumeroEscolhido)) {
        return gerarNumeroAleatorio(); // RECURSÃO //
    } else {
        listaDeNumerosSorteados.push(NumeroEscolhido);
        return NumeroEscolhido;
    }
}
1 resposta

Sem return: Se uma função não tiver um return explícito, ela ainda pode ser executada, mas vai devolver undefined.

function digaOla() {
    console.log("Olá!");
}

let resultado = digaOla(); // imprime "Olá!"
console.log(resultado);    // imprime undefined

Ou seja: a função executa, mas não "entrega" nenhum valor de volta.

Quando se trata de programação funcional, o conceito de funções puras é essencial. Em JavaScript, entender a diferença entre funções puras e impuras pode melhorar a legibilidade, manutenibilidade e testabilidade do código.

Funções Puras Uma função pura é aquela que retorna um valor dependendo apenas dos seus argumentos, sem efeitos colaterais observáveis. Em outras palavras, ela não modifica variáveis fora do seu escopo nem interage com elementos externos, como o estado global ou o sistema de arquivos.

function somar(a, b) {
  return a + b;
}

A função somar é um exemplo de uma função pura. Sempre que você chama somar(2, 3), ela retornará o mesmo resultado, sem afetar nada fora do seu contexto.

Funções Impuras Por outro lado, funções impuras são aquelas que podem modificar variáveis fora do seu escopo, realizar operações que não dependem exclusivamente dos seus argumentos ou ter efeitos colaterais observáveis.


let resultado = 0;

function somarImpuro(a) {
  resultado += a;
}

Aqui, somarImpuro é uma função impura, pois ela modifica a variável resultado fora do seu escopo, o que pode levar a efeitos inesperados em outras partes do código.

Benefícios das Funções Puras As funções puras têm várias vantagens. Elas são mais fáceis de testar, pois seu comportamento é previsível e não depende de um estado externo. Além disso, facilitam o raciocínio sobre o código, já que não têm efeitos colaterais.

function calcularTotal(precos) {
  return precos.reduce((total, preco) => somar(total, preco), 0);
}

No exemplo acima, a função calcularTotal é pura, pois depende apenas do array precos passado como argumento e utiliza a função somar, que também é pura.

Conclusão Em resumo, funções puras são uma peça fundamental no paradigma de programação funcional. Elas promovem a previsibilidade, testabilidade e compreensão do código. Ao escrever funções em JavaScript ou qualquer linguagem, buscar a pureza sempre que possível pode levar a um código mais robusto e fácil de manter.