Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Duvida sobre como funcionam as funções

Ola, não entendi como as funções funcionam, mas sendo mais especifico, não entendi para que serve o seguinte código

function exibealerta(mensagem) {
    alert("***" + mensagem + "***")
}

O meu nao entendimento e qual a utilidade do parentese e porque mensagem esta dentro dele.

3 respostas
solução!

Fala Carlos, tudo bem?

A ideia nesse código é que estamos declarando uma função (um grupo de instruções elaborado por nós para exibir um alerta). Toda vez então que chamarmos essa função para que seja exibido um alert - o que o JavaScript através do código alert("alguma mensagem") - precisaremos escrever exibealerta();.

Mas percebe que o código exibealerta(); é muito vago? Qual a mensagem vai ser exibida nesse alerta, se não passamos mais nenhuma informação além de pedir pra que um alerta seja exibido?

A ideia da mensagem entre os parênteses vem justamente a partir desse pensamento. Para que seja possível passar alguma informação para ser exibida como alerta precisaríamos escrever o seguinte código: exibealerta("Uma mensagem nossa qualquer");. Percebe a diferença ? Agora pedimos para que a mensagem escrita dentro dos parênteses seja exibida no alerta.

Para que o JavaScript saiba o que fazer com esse texto que passamos quando chamamos a função é que precisamos dessa "mensagem". O nome mensagem, dentro dos parênteses da função, representa a criação de uma variável (que se usa para armazenar dados), que vai receber justamente o conteúdo passado na função (no nosso exemplo acima o texto "Uma mensagem nossa qualquer"). Dessa forma a linguagem sabe o que deve ser feito com o referido texto na linha dentro da função: alert("***" + mensagem + "***").

Se chamarmos em outro ponto do programa exibealerta("Outra mensagem qualquer"), o javascript sabe que para a função exibealerta esse novo texto representa a mensagem que deve ser exibida, guardada por um momento dentro da variável mensagem - declarada dentro dos parênteses da função - e que logo a frente deve utilizá-lo na chamada ao alert("***" + mensagem + "***") para que o JavaScript apresente um popup com a mensagem.

As funções em programação, seguem a mesma ideia das funções na matemática. Veja um exemplo... Imagine a seguinte função:

f(x) = x + 1

Qual o resultado da função? É impossível determinar nesse momento. Só é possível determinar quando a função for aplicada com algum valor. Por exemplo f(x) = x + 1 onde x = 1.

f(1) = 1 + 1
que resulta em 2

ou onde x = 3

f(3) = 3 + 1
que resulta em 4

Essa é a mesma ideia da nossa função exibealerta. Se ela fosse representada com uma 'cara' de função matemática, vamos imaginar assim...

f(x) = exibe o texto de x

Se imaginarmos a função onde x = "Uma mensagem", o resultado será a exibição do texto em x que é Uma mensagem. Se imaginarmos a função onde x = "Outra mensagem", o resultado será a exibição do texto em x, que nesse outro caso é Outra mensagem.

A diferença fica em como escrevemos a função com a linguagem que estamos utilizando. As linguagens de programação em geral permitem que sejam associados bons nomes (que ajudam na compreensão da lógica) tanto às funções - que matematicamente seria o f - como às variáveis que matematicamente seriam em geral x, y, z, etc.

Desconstruindo a ideia matemática de nomenclatura das funções poderíamos supor:

exibeAlerta(mensagem) = exibe o texto de mensagem

Percebe como chegamos mais perto da ideia do programa escrito?

Pelas regras de escrita (sintaxe) do Javascript chegamos em:

function exibeAlerta(mensagem) {
    alert('***' + mensagem + '***');
}

Espero ter ajudado no pensamento. Abraço!

Obrigado pelo contato Rafael! Então vejamos se eu entendi, o JavaScript entende que quando eu escrevo mensagem dentro da função, ela é algo vago, e só adquire sentido a partir do momento em que eu defino o que é essa "mensagem", e esse sentido é adquirido quando eu escrevo o seguinte código

exibeAlerta("Total de idades é " + totalIdades);

aonde o "total de idades" substitui o mensagem

Espero que tenha ficado claro minha duvida, caso não tenha entendido me avise que tentarei reformular.

Perfeito, Carlos. Você entendeu! =)

Você exemplificou corretamente. Nesse exemplo o JavaScript vai calcular o resultado de "Total de idades é " + totalIdades (que dá um texto) e passar esse texto para a função exibeAlerta, que a partir desse momento tem um valor associado à variável mensagem.

Mandou bem. Bons estudos!