Ми хочемо зробити цей проєкт з відкритим кодом доступним для людей у всьому світі.

Допоможіть перекласти цей підручник вашою мовою!

назад до уроку

Вивід кожної секунди

важливість: 5

Напишіть функцію printNumbers(from, to) яка виводить число кожну секунду, починаючи від from і закінчуючи to.

Зробіть два варіанти рішення.

  1. Використовуючи setInterval.
  2. Використовуючи вкладений setTimeout.

Використовуючи setInterval:

function printNumbers(from, to) { let current = from; let timerId = setInterval(function() { alert(current); if (current == to) { clearInterval(timerId); } current++; }, 1000); } // використання: printNumbers(5, 10);

Використовуючи вкладений setTimeout:

function printNumbers(from, to) { let current = from; setTimeout(function go() { alert(current); if (current < to) { setTimeout(go, 1000); } current++; }, 1000); } // використання: printNumbers(5, 10);

Зауважте, що в обох рішеннях є початкова затримка перед першим виходом. Функція викликається після 1000 мс у перший раз.

Якщо ми також хочемо, щоб функція запускалася негайно, ми можемо додати додатковий виклик в окремому рядку, наприклад:

function printNumbers(from, to) { let current = from; function go() { alert(current); if (current == to) { clearInterval(timerId); } current++; } go(); let timerId = setInterval(go, 1000); } printNumbers(5, 10);