Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Специализация

Python Backend Developer

Java Backend Developer

Node.js Backend Developer

Golang Backend Developer

React Frontend Developer

Посмотреть все

Выберите навыки

React

React

JavaScript

JavaScript

Git

Git

Redux

Redux

Webpack

Webpack

Посмотреть все

Сложность

1-3

4-6

7-8

9-10

Рейтинг вопросов

1

2

3

4

5

Подпишись на React Developer в телеграм

Вопросы React Frontend Developer


Что такое setTimeout и setInterval?

setTimeout выполняет указанную функцию один раз через заданное время, а setInterval — периодически, с указанным интервалом. Оба метода работают асинхронно, что значит, что они не блокируют основной поток выполнения программы. Чтобы остановить выполнение setInterval, нужно вызвать clearInterval, а для остановки отложенного вызова setTimeout — clearTimeout.

Подробнее

Как написать React-компонент, чтобы при монтировании запускался setInterval, выводящий в консоль "Hello world" каждые 10 секунд? Что важно учесть при такой реализации с setInterval?

useEffect(() => {
  const intervalId = setInterval(() => {
    console.log('Hello world');
  }, 10000);
  return () => clearInterval(intervalId); // Очистка при размонтировании
}, []);

Важно:

  1. Очистка в return — иначе интервал будет работать после удаления компонента.

  2. Пустой массив зависимостей [] — чтобы эффект выполнился только при монтировании.

Подробнее

Гарантирует ли setTimeout выполнение callback ровно через заданное время?

setTimeout не гарантирует выполнение callback ровно через указанное время. Он гарантирует, что callback не выполнится раньше, чем пройдёт заданная задержка. После истечения задержки callback попадает в очередь задач и будет выполнен, когда освободится call stack. На фактическое время влияет нагрузка, блокировки и приоритеты очередей. Поэтому таймер часто срабатывает позже.

Подробнее

Почему setTimeout может выполниться позже указанного времени?

setTimeout может выполниться позже, потому что после истечения времени callback попадает в очередь задач и ждёт своей очереди. Если основной поток занят синхронным кодом, выполнение откладывается. Также задержку увеличивают microtask, рендер и обработка событий. В фоне браузер может специально замедлять таймеры. Поэтому задержка может стать заметно больше, чем указанное значение.

Подробнее

Как реализовать компонент-секундомер, который обновляется раз в секунду?

Проще всего хранить “прошедшие секунды” в useState, а запуск обновления сделать в useEffect через setInterval. Внутри интервала увеличивать значение каждую секунду через функциональное обновление setState(prev => prev + 1). Обязательно вернуть функцию очистки, чтобы остановить интервал при размонтировании. Для более точного секундомера лучше хранить startTime в useRef и пересчитывать прошедшее время от реального времени, чтобы уменьшить “дрейф”.

Подробнее

setTimeout и setInterval как стандарт JavaScript

Является ли setTimeout и setInterval стандартом языка JavaScript?

Что такое JavaScript и зачем он нужен?

Как очистить интервал при размонтировании компонента?

Какие проблемы могут возникнуть при работе с setInterval в useEffect?

  • Рейтинг:

    4

  • Сложность:

    3

Функции setTimeout и setInterval не являются частью стандарта языка JavaScript (ECMAScript). Они предоставляются средой выполнения, такой как браузер или Node.js, через Web API или другие API окружения. В спецификации ECMAScript нет описания этих функций. Они используются для отложенного или периодического выполнения кода, но их реализация и доступность зависят от конкретной платформы.
Подробнее
  • Рейтинг:

    3

  • Сложность:

    2

setTimeout и setInterval не являются частью стандарта языка JavaScript (ECMAScript). Они предоставляются средой выполнения, такой как браузер или Node.js, через Web API. В браузерах они определены в спецификации WHATWG HTML Living Standard, а в Node.js — в модуле timers. Это означает, что их поведение может немного отличаться в разных средах, хотя основная функциональность одинакова.
Подробнее
  • Рейтинг:

    3

  • Сложность:

    4

setTimeout и setInterval не являются частью стандарта ECMAScript (ядра JavaScript). Они предоставляются Web API в браузерах и API Node.js в серверной среде. Это означает, что их реализация зависит от окружения, но они везде работают схожим образом. Например, в браузерах они управляются event loop, а в Node.js — модулем timers. Их поведение стандартизировано де-факто благодаря широкой поддержке.
Подробнее
  • Рейтинг:

    4

  • Сложность:

    2

В функциональных компонентах React используйте хук useEffect. Возвращаемая из useEffect функция выполняется при размонтировании компонента. В ней вызовите clearInterval, передав идентификатор интервала, сохранённый при его создании. В классовых компонентах используйте метод жизненного цикла componentWillUnmount для вызова clearInterval. Это обязательная практика для предотвращения утечек памяти и ошибок.
Подробнее
  • Рейтинг:

    4

  • Сложность:

    5

При использовании setInterval в useEffect без очистки (cleanup) интервал продолжит выполняться после размонтирования компонента, что может вызвать утечку памяти и ошибки при обращении к состоянию несуществующего компонента. Также важно правильно указывать зависимости в массиве зависимостей useEffect, чтобы интервал не пересоздавался при каждом рендере. Для работы с актуальным состоянием внутри setInterval нужно использовать рефы или функциональную форму обновления состояния.
Подробнее
  • Рейтинг:

    3

  • Сложность:

    5

  • Рейтинг:

    5

  • Сложность:

    6

  • Рейтинг:

    5

  • Сложность:

    6

  • Рейтинг:

    4

  • Сложность:

    7

  • Рейтинг:

    4

  • Сложность:

    5