setInterval
— это встроенная функция в JavaScript, которая позволяет выполнять заданный код или функцию через равные промежутки времени. Интервал будет повторяться до тех пор, пока его явно не остановить с помощью clearInterval
.
Синтаксис setInterval
setInterval(callback, delay, ...args)
callback
— функция, которая будет выполнена.delay
— интервал в миллисекундах между вызовами функции....args
— дополнительные аргументы, которые передаются в вызываемую функцию.
Пример использования setInterval
function sayHello() {
console.log('Привет!');
}
setInterval(sayHello, 1000); // каждую секунду будет выводиться "Привет!"
Остановка интервала
setInterval
возвращает числовой идентификатор, который можно передать в clearInterval
, чтобы остановить выполнение:
const intervalId = setInterval(sayHello, 1000);
// Остановить интервал через 5 секунд
setTimeout(() => {
clearInterval(intervalId);
console.log('Интервал остановлен');
}, 5000);
Использование анонимной функции в setInterval
setInterval(() => {
console.log('Текущее время:', new Date().toLocaleTimeString());
}, 1000);
Передача аргументов в функцию через setInterval
function greet(name) {
console.log(`Привет, ${name}`);
}
setInterval(greet, 2000, 'Алиса');
Особенности setInterval
- Интервал может сработать не сразу, а только после истечения первого
delay
. setInterval
не гарантирует точную периодичность выполнения, так как реальный интервал зависит от нагрузки на главный поток (event loop).- Лучше не забывать очищать интервалы при переходе между страницами или уничтожении компонентов в Single Page Application (SPA).
Очистка интервала перед повторным запуском
В некоторых случаях нужно перезапустить интервал. Важно перед этим его остановить:
let intervalId;
function startInterval() {
clearInterval(intervalId);
intervalId = setInterval(() => {
console.log('Работаем');
}, 1000);
}
startInterval();
setInterval
в JavaScript — это удобный способ для выполнения периодических задач, таких как обновление данных на экране, анимации, таймеры и опрос серверов. При работе с интервалами важно контролировать их очистку, чтобы избегать утечек памяти и лишней нагрузки на страницу.