React‑компонент секундомера с управлением
Храните накопленное время и момент старта, а интервал используйте только для обновления отображения. Так секундомер не накапливает ошибку от задержек тиков и может продолжаться после Stop.
Читать ответПодготовка к интервью
Разбирайте реальные вопросы, сверяйтесь с подробными ответами и готовьтесь по технологиям и компаниям.
Проверьте, насколько резюме подходит выбранной позиции, и получите рекомендации по улучшению.
Каталог
Храните накопленное время и момент старта, а интервал используйте только для обновления отображения. Так секундомер не накапливает ошибку от задержек тиков и может продолжаться после Stop.
Читать ответИнтервал обновляет state раз в секунду, а ref хранит последнее committed значение для cleanup. logMetric тоже нужно исправить: второй аргумент fetch должен быть объектом настроек, не строкой.
Читать ответСвяжите input со state, записывайте изменения в localStorage и слушайте storage в других вкладках того же origin. Вкладка-источник обновляет state сама: своё storage-событие она не получает.
Читать ответБесконечный синхронный цикл не даёт браузеру нормально обновлять экран. Наблюдаемого конечного значения нет: страница зависнет, даже если DOM-свойство непрерывно меняется.
Читать ответПри обычном первом клиентском монтировании без Strict Mode ожидается 1, 3, 4, 2: сначала render родителя и ребёнка, затем пассивные эффекты ребёнка и родителя.
Читать ответВывод: 7, 2, 5, 1, 4, 6, 3. Promise с выводом 4 сначала ждёт своего таймера, а таймер с 3 регистрируется только из микрозадачи.
Читать ответЭтот фрагмент не компилируется, поэтому корректной последовательности логов у него нет. Повреждены объявления компонентов, JSX, ref и имя useLayoutEffect; сначала нужно восстановить исполняемый пример.
Читать ответПорядок вывода: 1, 4, 6, 3, 2, 5. Синхронные сообщения идут первыми, затем обработчик Promise, после него два таймера в порядке регистрации.
Читать ответВ обычном нестрогом браузерном script без глобальных firstName/lastName вывод: Bill, undefined, Boris, Bill, undefined, Boris, undefined. В strict mode последовательность прервётся раньше.
Читать ответПосле клика изменится текст внутри существующей кнопки: например, a превратится в aa. Функция компонента выполнится заново, но сам DOM-элемент button пересоздавать не требуется.
Читать ответВ консоль попадёт исходный пустой объект {}, а не 123. Каждый литерал {} создаёт новый объект, и строгое сравнение проверяет их идентичность, а не одинаковое содержимое.
Читать ответИспользуйте variadic tuple types и разрешите readonly-кортежи в ограничениях. Результирующий кортеж должен быть изменяемым, как в тесте для as const.
Читать ответ