1
resposta

Lógica de programação → Gerônimo

Prezados,

Diante do exercício abaixo proposto em uma aula, o resultado será: A média das idades é

  1. Poderiam me esclarecer o porque desse resultado?
<meta charset="UTF-8">
<script>
    var IDADE1 = 10;
    var IDADE2 = "20";
    var IDADE3 = 12;

    document.write("A média das idades é <br>");
    document.write( (IDADE1 + IDADE2 + IDADE3) / 3);
</script>

Obrigado

1 resposta

Oi Jaison, tudo bem com você? Espero que sim!

Obrigada pela paciência em obter uma resposta.

A linguagem JavaScript atua de maneiras diferentes em relação a string (cadeia de caracteres, texto) dependendo do operador matemático aplicado. Nesse código existem dois operadores matemáticos, de soma e de divisão, que atuam diferentemente sobre a string.

Logo, pode-se perceber que o resultado que aparece no seu código acontece devido a variável IDADE2 estar recebendo um elemento em forma de string, por meio das aspas. Desse modo, ao utilizar o operador matemático de soma colocado dessa forma, o JavaScript entende que o valor entre aspas é uma palavra e não um número. Portanto, ele concatena o valor com os demais números ao invés de fazer a operação matemática.

Então ao ler a função document.write( (IDADE1 + IDADE2 + IDADE3) / 3) o Javascript vai interpretar da seguinte maneira:

10 + "20" + 12
"1020" + 12
("102012")/3
34004

Agora note que quando dividimos uma string por um número, o JavaScript converte essa string para um valor numérico e realiza a divisão normalmente, gerando o resultado que apareceu na página web e lhe deixou confuso.

Para que seu código funcione corretamente e entregue o valor das médias das idades, você pode remover as aspas da var IDADE2.

Então, aonde está escrito, na linha 4:

    var IDADE2 = “20”;

Você substitui por:

    var IDADE2 = 20;

Assim, o resultado final mostrado pelo código será:

A média das idades é 14

Espero ter ajudado, Jaison. Se tiver mais alguma dúvida, estou à disposição. :)

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!