Olá Guilherme,
O detalhe é que o prompt
retorna um valor do tipo texto (string), e quando você soma dois textos o que acontece é a união desses textos:
var soma = "Olá " + "Guilherme";
// Resultado: "Olá Guilherme"
var soma = "10" + "10";
// Resultado: "1010"
O que você pode fazer é converter de texto para número (int), e o javascript tem a função parseInt()
que faz exatamente isso:
var soma = parseInt("Olá ") + parseInt("Guilherme");
// Resultado (não consegue converter para número): NaN
var soma = parseInt("10") + parseInt("10");
// Resultado: 20
Então o que você tem que fazer é converter o que vem do prompt()
com o parseInt()
: var lp = parseInt(prompt("Informe sua nota em Português"));
Como isso se torna algo repetitivo, utilizamos a mesma ação várias vezes, podemos colocar isso dentro de uma função para simplificar um pouco o código:
// Cria a função
function pegaNumero(pergunta) {
return parseInt(prompt(pergunta));
}
// Usando a função
var lp = pegaNumero("Informe sua nota em Português");
var mat = pegaNumero("Informe sua nota em Matemática");
var hist = pegaNumero("Informe sua nota em História");
... resto do código
Espero ter ajudado, qualquer dúvida é só falar!