Fiz assim como o professor disse no vídeo e criei a função zerar() abaixo da variável contagemRegressiva e da função iniciarOuPausar(), porém não adiantou chamar a função zerar() dentro da contagemRegressiva, o navegador seguiu chamando o alert sem parar.
A solução que encontrei foi mudar a posição da função zerar() e colocá-la acima da variável contagemRegressiva. Assim a função zerar() chamada pelo if() na variável contagemRegressiva funcionou e o alert foi mostrado apenas uma vez como deveria.
O código então ficou na seguinte ordem:
function zerar() {
clearInterval(intervaloId);
intervaloId = null;
}
const contagemRegressiva = () => {
if(tempoDecorridoEmSegundos <= 0) {
zerar();
alert("Tempo finalizado!");
return;
}
tempoDecorridoEmSegundos -= 1;
}
startPauseBt.addEventListener("click", iniciarOuPausar);
function iniciarOuPausar() {
if(intervaloId) {
zerar();
return;
}
intervaloId = setInterval(contagemRegressiva, 1000);
}