Olá Joana, tudo bem?
O parseInt transforma um string em um número inteiro, correto? O parseFloat faz basicamente a mesma coisa, no entanto, ele transforma uma string em float (ponto flutuante). Nesse link você pode ler um pouco mais sobre essa função.
Quanto a sua outra dúvida, o while é um laço de repetição, basicamente ele executa um bloco de código enquanto sua condição de repetição for verdadeira.
Nesse caso, enquanto o contador for menor que totalEventos, o bloco de código dentro do while será executado. A variável contador está sendo declarada antes do while e sendo acrescida de 1 em 1 a cada repetição do código, é isso que o trecho de código contador++ faz.
Chegará um momento em que o valor de contador será igual ao valor de totalEventos e então o bloco de código não será mais executado. Por exemplo, iniciamos contador = 0 e totalEventos = 10, o bloco de código será executado 10 vezes.
Espero ter te ajudado, fique a vontade para perguntar caso tenha ficado alguma dúvida.
Bons estudos! =)