Provavelmente você já precisou executar uma função mais de uma vez, durante um período de tempo ou esperar algum tempo para executá-la pelo menos uma vez.

Se você chegou a pesquisar, provavelmente leu algo sobre setTimeout() e setInterval(). Ambas são funções Javascript que controlam quando uma função deve ser chamada.

setTimeout([função], [tempo de espera, em milisegundos])

O setTimeout() executa a função passada por ele, após o tempo determinado, apenas uma vez. Exemplo:

setTimeout("alert('Olá, apareci depois de 3 segundos.')", 3000);

O código acima faz com que o alert seja executado apenas 3 segundo após a chamada.

setInterval([função], [tempo de repetição, em milisegundos]);

Diferentemente da setTimeout(), a função setInterval() executa repetidamente a função passada por ela, em intervalos de tempo iguais.

setInterval("alert('Olá, irei aparecer a cada 5 segundos.')", 5000);

O resultado será um alert a cada 5 segundos. Porém, em certos casos, isso pode ser um inconveniente. Por isso há o clearInterval(), que finaliza o intervalo entre as chamadas.

var num = 0;
objInter = setInterval(function() {
    if(num > 5)
    {
        clearInterval(objInter);
        return;
    }
    alert("Irei aparecer 5x apenas.");
    num++;
}, 5000);

Repare que o clearInterval() recebe como parâmetro o objeto do setInterval(), por isso é preciso guardar, em uma variável, esse objeto (no caso, a variável é objInter).

Obs.: Muita gente acha que o setTimeout() e o setInterval() interrompem a execução do código, como uma chamada de função, por exemplo. Isso não é verdade. As funções que serão executadas pelo setTimeout() e setInterval() são executadas por traz do código principal. Ou seja, não causam uma pausa.

Leitura recomendada:
Mozilla Developer Center: DOM:window.setTimeout
Mozilla Developer Center: DOM:window.setInterval
Mozilla Developer Center: DOM:window.clearInterval