Специализация
Python Backend Developer
Java Backend Developer
Node.js Backend Developer
Golang Backend Developer
React Frontend Developer
Выберите навыки
React
JavaScript
Git
Redux
Webpack
Сложность
1-3
4-6
7-8
9-10
Рейтинг вопросов
1
2
3
4
5
Подпишись на React Developer в телеграм
Что такое цикл событий (event loop) и как он работает?
Цикл событий (event loop) — это механизм в JavaScript, который управляет выполнением кода, обработкой событий и выполнением задач из очереди (callback-ов). Он позволяет JavaScript быть асинхронным, обрабатывая задачи, когда основная программа уже завершена. Когда вызывается асинхронная операция, она отправляется в очередь, а цикл событий отслеживает и выполняет задачи, как только главный поток освобождается.
Объясните влияние блокирующих операций на Event Loop и как их избежать.
Блокирующие операции в JavaScript — это те, которые останавливают выполнение кода и не позволяют Event Loop обрабатывать другие задачи. Это может привести к зависанию интерфейса пользователя и снижению отзывчивости приложения.
Чтобы избежать блокирующих операций, используйте асинхронные функции, такие как setTimeout, Promise и API, позволяющие выполнять задачи в фоновом режиме, не блокируя основной поток выполнения.
Является ли код внутри тега <script> макрозадачей?
Код внутри тега <script> выполняется синхронно и не является макрозадачей. Когда браузер загружает страницу, он сначала выполняет весь синхронный код, содержащийся в теге <script>, и только после завершения этого выполнения переходит к обработке других задач в очереди, таких как макрозадачи и события. Макрозадачи включают асинхронные операции, такие как setTimeout или обработчики событий.
Как рендеринг в браузере связан с event loop?
Рендеринг в браузере отвечает за отображение веб-страницы, включая разметку, стили и поведение. Event loop управляет выполнением JavaScript-кода и обработкой событий, ставя асинхронные задачи в очередь.
Когда браузер завершает текущий стек выполнения, он проверяет очередь событий и выполняет задачи, что может приостановить рендеринг, если есть тяжелые операции.
Понимание этой связи помогает разработчикам избегать блокировок интерфейса и улучшать отзывчивость приложений.
Как event loop влияет на парсинг HTML и как этого избежать?
Event loop может приостанавливать парсинг HTML, если JavaScript выполняется во время загрузки страницы. Когда браузер встречает тег <script>, он останавливает парсинг и выполняет скрипт, что может замедлить загрузку страницы. Чтобы избежать этого, разработчики могут использовать атрибуты async или defer, которые позволяют загружать и выполнять скрипты асинхронно, не блокируя парсинг.
Расскажи про event loop в React.
Что такое Event Loop и Event Emitter?
Event Loop, что относится к микро и макро задачам?
Если в useEffect сделать долгий fetch (например, на минуту), заблокирует ли это выполнение JS и интерфейс браузера? Почему он не ждёт ответа?
Почему MutationObserver использует микротаски в Event Loop?
Рейтинг:
4
Сложность:
7
Event loop — это механизм JavaScript, который позволяет обрабатывать асинхронные задачи. В React event loop используется для обработки событий, таких как клики или запросы данных. Когда происходят изменения в данных или состоянии компонента, React реагирует на это, отправляя обновления в очередь и следуя за event loop для их обработки, не блокируя основной поток.
Рейтинг:
4
Сложность:
6
Event Loop — это механизм в Node.js, который позволяет выполнять асинхронные операции без блокировки потока. Он управляет событиями и задачами, помещая их в очередь.
Event Emitter — это объект, который позволяет создавать и обрабатывать события, используя методы .emit() и .on().
Рейтинг:
5
Сложность:
5
Event Loop управляет выполнением асинхронного кода.
Микрозадачи (Promise, queueMicrotask) выполняются сразу после текущего синхронного кода.
Макрозадачи (setTimeout, setInterval) выполняются после микрозадач и рендера страницы.
Рейтинг:
3
Сложность:
9
Нет, долгий fetch не заблокирует интерфейс, потому что он выполняется асинхронно. JavaScript не "ждёт" ответа — запрос отправляется в фоне, а основной поток продолжает работать.
Рейтинг:
2
Сложность:
8
MutationObserver выполняет свои колбэки в микротасках, чтобы изменения DOM обрабатывались сразу после текущей задачи, но до рендеринга и макротасков. Это позволяет быстро реагировать на изменения, сохраняя высокую производительность.
Рейтинг:
5
Сложность:
7
Рейтинг:
3
Сложность:
7
Рейтинг:
3
Сложность:
8
Рейтинг:
3
Сложность:
8
Рейтинг:
3
Сложность:
8