1
resposta

[Dúvida] Dúvida sobre a variavel numero e função numero aleatorio

Salve, espero que estejam bem!

Minha dúvida é a seguinte: como funciona a atribuição dos valores na chamada da função obterNumeroAleatorio, quando eu passo os parâmetros de e ate, sendo que a função foi definida para receber min e max?

No caso, eu chamo a função assim:

numero = obterNumeroAleatorio(de, ate);

Porém, na definição da função, os parâmetros têm nomes diferentes:

function obterNumeroAleatorio(min, max) {
    return Math.floor(Math.random() * (max - min + 1)) + min;
}

Gostaria de entender como o JavaScript associa os valores de de e ate aos parâmetros min e max, mesmo eles tendo nomes diferentes.

1 resposta

Oii, Matheus! Tudo bem?

Quando definimos uma função, os nomes que colocamos entre parênteses (min, max) são chamados de parâmetros. Eles funcionam como "vagas" ou "espaços reservados" que só existem dentro daquela função.

Quando você chama a função, os valores que você passa (de, ate) são chamados de argumentos. O JavaScript não se importa com o nome da variável que você está enviando, mas sim com a posição dela.

  • O primeiro valor que você envia (de) será entregue para a primeira vaga da função (min).
  • O segundo valor que você envia (ate) será entregue para a segunda vaga da função (max).

Imagine que a função obterNumeroAleatorio seja uma casa com duas caixas de correio na entrada.

  1. A primeira caixa tem uma etiqueta escrita "min".
  2. A segunda caixa tem uma etiqueta escrita "max".

Quando você executa obterNumeroAleatorio(de, ate), você está pegando o conteúdo que guardou na pasta de e colocando na caixa min. Depois, pega o que está na pasta ate e coloca na caixa max.

Dentro da "casa" (o corpo da função), o JavaScript só conhece os nomes que estão nas etiquetas das caixas de correio.

Exemplo:

Se no seu programa os valores forem:

  • de = 10
  • ate = 50

Ao fazer a chamada:

numero = obterNumeroAleatorio(10, 50);

O JavaScript faz essa atribuição automática:

  • min passa a valer 10
  • max passa a valer 50

Isso é o que permite que as funções sejam flexíveis. Você poderia usar essa mesma função em outra parte do projeto passando valores fixos, como obterNumeroAleatorio(1, 100), e ela continuaria funcionando perfeitamente.

Espero ter ajudado.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!