Логотип 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.

Подробнее

Как реализовать "ленивые" вычисления (lazy evaluation) в JavaScript?

Ленивые вычисления в JavaScript означают, что результат вычисления будет возвращен только по мере необходимости, а не сразу. Это может улучшить производительность, особенно если результаты не всегда нужны. Ленивые вычисления можно реализовать с помощью функций, возвращающих другие функции или используя генераторы, которые позволяют приостанавливать и возобновлять выполнение.

Подробнее

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

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

Важно:

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

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

Подробнее

Как setInterval и setTimeout влияют на this?

В обычных функциях this внутри setInterval/setTimeout теряется (становится window/undefined в strict mode). Стрелочные функции сохраняют this из внешнего контекста.

Подробнее

Отличие анимации при использовании requestAnimationFrame и SetInterval

setInterval выполняет функцию с фиксированной задержкой, не учитывая частоту обновления экрана, что может приводить к пропуску кадров и лишним вычислениям. requestAnimationFrame синхронизирует выполнение кода анимации с частотой обновления экрана (обычно 60 кадров/с), что делает анимацию плавной и эффективной. Он также автоматически останавливается, когда пользователь переходит на другую вкладку, экономя ресурсы. Для плавных анимаций всегда следует предпочитать requestAnimationFrame.

Подробнее

Почему setInterval нужно очищать при размонтировании компонента?

Как корректно очищать setInterval в useEffect?

Чем setInterval хуже setTimeout для polling?

В каком порядке вызываются valueOf и toString?

Как работают методы Object.keys и Object.values в JavaScript?

  • Рейтинг:

    5

  • Сложность:

    4

setInterval продолжает работать даже после того, как компонент исчез со страницы, потому что он живёт отдельно от React. Если интервал не очистить, он будет дальше выполнять код, тратить ресурсы и может пытаться обновлять state уже размонтированного компонента. Это приводит к лишним вычислениям, странным багам и предупреждениям в консоли. Поэтому таймеры нужно останавливать в cleanup-функции useEffect.

Подробнее
  • Рейтинг:

    5

  • Сложность:

    4

setInterval очищается через clearInterval, вызванный в функции, которую возвращает useEffect. Эта функция выполняется при размонтировании компонента и перед повторным запуском эффекта. Важно сохранить идентификатор интервала в переменную внутри эффекта. Такой подход гарантирует, что таймер не продолжит работать после ухода компонента со страницы.

Подробнее
  • Рейтинг:

    4

  • Сложность:

    5

setInterval запускает обработчик по расписанию, даже если предыдущий запрос ещё не закончился, из-за чего появляются параллельные запросы и лишняя нагрузка. Интервалы также “плывут” (drift): если обработчик выполняется долго, фактические моменты запуска смещаются. setTimeout удобнее для polling, потому что позволяет запускать следующий запрос после завершения предыдущего и гибко менять задержку (например, при ошибках увеличить).

Подробнее
  • Рейтинг:

    5

  • Сложность:

    7

При приведении объекта к примитиву JavaScript сначала пытается вызвать valueOf, а если он не возвращает примитив, вызывает toString. Этот порядок применяется по умолчанию для числового контекста. Если результат всё ещё не примитив, выбрасывается ошибка. Поведение строго описано в спецификации.

Подробнее
  • Рейтинг:

    4

  • Сложность:

    5

Методы Object.keys и Object.values позволяют извлекать ключи и значения объекта соответственно:

  1. Object.keys возвращает массив всех ключей объекта.

  2. Object.values возвращает массив всех значений объекта.

Подробнее
  • Рейтинг:

    3

  • Сложность:

    5

  • Рейтинг:

    1

  • Сложность:

    7

  • Рейтинг:

    5

  • Сложность:

    6

  • Рейтинг:

    2

  • Сложность:

    7

  • Рейтинг:

    5

  • Сложность:

    4