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


Что такое утечка памяти в JavaScript? Как её можно диагностировать?

Как избежать утечек памяти в js?

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

Почему производительность drag-and-drop деградирует со временем, а не сразу?

  • Рейтинг:

    3

  • Сложность:

    8

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

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

    4

  • Сложность:

    8

Утечки памяти в JS возникают, когда объекты, которые больше не нужны, не удаляются сборщиком мусора, потому что на них остаются ссылки. Чтобы этого избежать, нужно: 1) Убирать слушатели событий (Event Listeners) с DOM-элементов при их удалении. 2) Не хранить ссылки на DOM-элементы в глобальных переменных или замыканиях дольше необходимого. 3) Осторожно работать с замыканиями и большими объектами, хранящимися в памяти. 4) В современных фреймворках (React, Vue) следить за отпиской от подписок (setInterval, WebSocket) в хуках жизненного цикла размонтирования.

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

    4

  • Сложность:

    5

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

    3

  • Сложность:

    5

Производительность drag-and-drop может деградировать со временем из-за накопления неотменённых обработчиков событий, особенно при повторных перетаскиваниях. Если обработчики не удаляются после завершения перетаскивания, они продолжают висеть в памяти и вызываться, замедляя работу. Также возможны утечки памяти из-за создания новых DOM-элементов без их очистки.
Подробнее