intermediate

Event loop

Call stack, task queue, microtask queue, Promise, async/await и наблюдаемый порядок выполнения.

Call stack выполняется синхронно до опустошения. Реакции Promise попадают в microtasks; таймеры и многие I/O callbacks — в macrotasks. После каждой macrotask рантайм очищает все microtasks перед следующей macrotask.

					console.log('sync');
setTimeout(() => console.log('task'), 0);
Promise.resolve().then(() => console.log('microtask'));
// sync → microtask → task
				

`setTimeout(..., 0)` не мгновенен — он планирует task. Длинные цепочки microtasks могут задержать rendering и таймеры.

На интервью объясняйте концепцию на конкретном примере и называйте поведение рантайма, которое проверяют.

Типовые ошибки: путать похожие API и забывать edge cases в live coding.

Компромисс часто между ясностью и производительностью или между безопасностью и удобством.

Чеклист:

  • Синхронный код выполняется первым.
  • Promise планируют microtasks.
  • Таймеры планируют macrotasks.
  • Microtasks очищаются между macrotasks.