Olá, Geraldo!
Quando você define uma função com parâmetros, como a função calculaImc(altura, peso) no seu código, você está criando variáveis locais dentro dessa função que irão receber os valores que você passar quando chamar a função. Essas variáveis locais altura e peso só existem dentro do escopo da função calculaImc.
Se você tiver variáveis globais chamadas altura e peso e passá-las para a função calculaImc, a função usará os valores dessas variáveis no momento da chamada. A função não "sabe" de onde as variáveis vêm, ela simplesmente recebe os valores e os utiliza dentro do seu escopo.
Por exemplo, se você tiver o seguinte código:
var altura = 1.80;
var peso = 80;
function calculaImc(altura, peso) {
var imc = peso / (altura * altura);
mostra("O imc calculado é " + imc);
}
calculaImc(altura, peso);
Neste caso, quando você chama calculaImc(altura, peso);, a função calculaImc recebe o valor de 1.80 para o parâmetro altura e 80 para o parâmetro peso, independentemente dos nomes das variáveis globais. Dentro da função calculaImc, as variáveis locais altura e peso são usadas para calcular o IMC.
Se você alterar os valores das variáveis globais altura e peso e chamar a função novamente, ela usará os novos valores:
altura = 1.65;
peso = 65;
calculaImc(altura, peso);
Agora, a função calculaImc usará 1.65 para altura e 65 para peso ao calcular o IMC.
Lembre-se de que os nomes dos parâmetros dentro da função são locais a essa função e não precisam ser iguais aos nomes das variáveis globais. O que importa são os valores que você passa ao chamar a função.
Espero ter ajudado e bons estudos!