Таймер повторюваний setInterval і один раз setTimeout в java script

Періодично в коді потрібно використовувати таймери, які б виконували певні функції через якийсь час або тільки один раз. Цю проблему вирішують функції setInterval і setTimeout у java script.
setInterval - таймер, дозволяє періодично виконувати одні й самі дії задані функції. Приклад:
setInterval(function() < alert('Приветик'); >, 5000);
Даний приклад запустить alert-сполучення через 5 сек. і повторить дану дію нескінченну кількість разів з інтервалом 5 сек.
За допомогою цього таймера можна вважати секунди, виконувати анімацію та багато іншого. Часто періодичних дій для таймерів досить багато. Тому запуск дій можна перенести на заздалегідь задану функцію. Приклад:
setTimeout - це таймер, який виконується скриптом один раз з часом затримки, який вказано як і в setInterval. Приклад:
Повідомлення з'явиться за 2 сек. після запуску скрипта, потім таймер більше не спрацьовуватиме.
Якщо вам потрібно зупинити запущений таймер, спочатку надайте йому ідентифікатор, а потім використовуйте функціюclearTimeout. Приклад:
var id = setInterval(function() < alert('Їжа'); clearTimeout(id); >, 5000); alert(id);
Тут змінна id – ідентифікатор таймера у вигляді числа. Після примусового завершення роботи його номер все одно збережеться в id. У цьому прикладі спочатку висвітиться ідентифікатор таймера, а через 5 с. слово Їжа, після чого спрацює функція clearTimeout, в якій вже буде прописано id таймера, який треба закрити. Якби її не було, то таймер спрацьовував кожні 5 секунд.
Розумний (рекурсивний) setTimeout
Дозволяє змінювати час таймера залежно від будь-яких умов,подій.
var timers = setTimeout(function ticks() < alert("Спрацював!"); timers = setTimeout(ticks, 2000); >, 5000);
У цьому прикладі ми змінюємо час спрацювання таймера на 2 сек.