Ola Queren,
basicamente quando voce declara uma função, e esta tem parametros, voce esta dizendo para função que voce esta criando uma variavel para se usar dentro dela, onde a mesma ja estara recebendo os valores que esta sendo pasada na chamada daquela função.
Exemplo:
/*varialvel "a" recebe o valor 10 e "b" recebe 20*/
let a = 10;
let b = 20;
/*chamo a funçao somar passando "a"e "b" como parametro para a funçao*/
somar(a, b)
/*como escrevemos
aqui estou dizendo para a funçao criar duas variaveis e receber os valores que foram passados:
"x" recebe o valor de "a", ou seja "x" é 10 e
"y" recebe o valor de "b", ou seja "y" é 20
*/
function somar(x, y) {
return x+y; /*resposta é 30*/
}
ah mas e seu eu colocar o nome dos parametros igual o nome da variavel que estou passando para chamar a funçao?
neste caso é como se voce fissese uma copia da quela varialvel, podendo alterar o valor da copia dentro da funçao sem alterar a original.
Exemplo:
/*varialvel "a" recebe o valor 10 e "b" recebe 20*/
let a = 10;
let b = 20;
/*chamo a funçao somar passando "a"e "b" como parametro para a funçao*/
somar(a, b)
/*como escrevemos
aqui estou dizendo para a funçao criar duas variaveis com o mesmo nome e receber os valores que foram passados,
porem qualquer alteraçao que seja feita dentro da funçao nao ira alterar as variaveis "a" ou "b" que estao fora da funcao
"a" recebe o valor de "a", ou seja "a" é 10 e
"b" recebe o valor de "b", ou seja "b" é 20
*/
function somar(a, b) {
/*se eu disser que "x" recebe outro valor e realizar a soma a resposta sera diferente*/
a= 50;
return x+y; /*resposta é 70*/
}
/*se eu der um console.log de "a" fora da funçao eu terei o valor original
pois o que é alterado na funçao fica na funçao*/
console.log(a); /*resposta é 10*/
espero ter ajudado!