setTimeout и setInterval — это функции для работы с таймерами, которые часто ассоциируются с JavaScript, но технически они не входят в спецификацию ECMAScript, которая является стандартом языка. Вместо этого они являются частью API, предоставляемого средой выполнения.
В браузерах эти функции определены в спецификации WHATWG HTML Living Standard как часть Web API. Они доступны в глобальной области видимости (обычно на объекте window), но не являются методами самого языка. В Node.js они реализованы в модуле `timers` и также доступны глобально для совместимости.
Практическое применение этих функций включает отложенное выполнение кода (setTimeout) и периодическое выполнение (setInterval). Например, для создания простого таймера или отложенной загрузки данных.
Пример использования setTimeout:
javascript
// Отложенный вывод сообщения через 2 секунды
setTimeout(() => {
console.log('Сообщение после задержки');
}, 2000);
// Можно передать аргументы в функцию
function greet(name) {
console.log(`Привет, ${name}!`);
}
setTimeout(greet, 1000, 'Анна');
Пример использования setInterval:
javascript
// Создание простого секундомера
let seconds = 0;
const intervalId = setInterval(() => {
seconds++;
console.log(`Прошло ${seconds} секунд`);
if (seconds >= 5) {
clearInterval(intervalId); // Остановка интервала
console.log('Секундомер остановлен');
}
}, 1000);
Важно помнить, что таймеры в JavaScript не гарантируют точное время выполнения. Они добавляют callback в очередь событий после указанной задержки, но фактическое выполнение может быть отложено, если основной поток занят другими задачами.
Итог: setTimeout и setInterval — это важные инструменты для управления временем выполнения кода, но они являются частью API среды, а не стандарта ECMAScript, что нужно учитывать при переносе кода между разными средами выполнения.