Oi, Ana!
Parabéns pelo seu progresso!!!
Abaixo vou colocar teu código com algumas mudanças que eu explico abaixo caso você se interesse:
<meta charset="UTF-8">
<script>
function titulo(mensagem) {
document.write("<h2>" + mensagem + "</h2>");
}
/* informar quantidade total de eventos
perguntar o total gasto nesse numero x de eventos
somar os valores a um total gasto
dividir o total gasto pela quantidade total de eventos*/
let totalEventos = parseInt(prompt("Olá! Informe o número total de eventos"));
let totalDaDespesa = 0.0;
for(i = 1; i <= totalEventos; i++) {
let gasto = parseFloat(prompt("Informe o quanto gastou:").replace(',','.'));
totalDaDespesa += gasto;
// soma o valor anterior à variável totalDaDespesa toda vez que entra no loop
}
let mediaDeGastos = totalDaDespesa / totalEventos;
titulo("A média de gastos destes " + totalEventos + " eventos " + "é igual a " + "R$ " + mediaDeGastos.toFixed(2));
</script>
Substituiria let gasto = parseInt(...)
por let gasto = parseDouble(...)
porque o gasto pode ser quebrado - como R$ 2,55 - e do jeito que estava só pegava a parte inteira
Nessa mesma linha eu acrescentaria o .replace(',' , '.')
porque, estando no Brasil, é comum que o usuário comum digite 2,55 ao invés de 2.55
A linha completa, portanto, seria let gasto = parseFloat(prompt("Informe o quanto gastou:").replace(',','.'));
Não vejo necessidade de colocar o parseInt em parseInt(mediaDeGastos)
porque mediaDeGastos não é uma String e sim um Float com o código que apresento aqui ou um Int no código que colocasse.
Por fim, colocaria um .toFixed(2)
para que o valor de mediaDeGastos seja arredondado em duas casas decimais.
Espero ter contribuído.