Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Questionamentos sobre parseInt

Eu fiz sem o parseInt antes do prompt (como mostrado abaixo) e na hora da execução, o código apenas juntava ambos os números informados, em vez de somar (se voce escolhesse 1 e 2, ele mostraria 12 em vez de 3)

function somandoDoisNumeros() { let primeiroNumero = prompt('Digite o primeiro número'); let segundoNumero = prompt('Digite o segundo número'); let resultado = primeiroNumero + segundoNumero; alert(${primeiroNumero} + ${segundoNumero} = ${resultado})

Colocando o parseInt antes do prompt, assim como está na imagem, o programa entendeu que era pra somar. Minha pergunta é, por que isto ocorreu? Porque não colocar o parseInt junta os números escolhidos e colocando o parseInt, ele soma? É algo no HTML? É algo relacionado ao function do começo do código? É necessário sempre colocar o parseInt ao definir uma variável e imediatamente relacionar ela com um prompt no caso de cálculos?

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta
solução!

Olá Pedro, como vai? Espero que esteja bem!

A questão que você levantou é muito comum para quem está começando a programar. O que acontece é que o método prompt do JavaScript sempre retorna uma string, ou seja, um texto. Quando você tenta usar o operador + com strings, o JavaScript entende que você quer concatenar (juntar) esses textos, e não somá-los como números.

Por isso, quando você digitava 1 e 2, o resultado era "12" - o JavaScript estava juntando os textos "1" e "2". O parseInt é uma função que converte uma string em um número inteiro, se possível. Quando você coloca parseInt antes do prompt, está convertendo o texto que foi digitado em um número. Assim, quando você usa o operador + com números, o JavaScript realiza a soma aritmética, que no seu caso resulta em 3.

Não é algo específico do HTML ou do function, é uma característica da linguagem JavaScript e de como ela trata diferentes tipos de dados. E sim, sempre que você precisar realizar operações aritméticas com valores obtidos através do prompt, é necessário converter esses valores para números usando parseInt (para inteiros) ou parseFloat (para números com casas decimais), caso contrário, você terá concatenação de strings ao invés de operações matemáticas.

Espero ter esclarecido sua dúvida e bons estudos!