Встречается на собеседованиях • сегодня

По каким правилам задачи попадают в стек вызовов

Стек вызовов (call stack) работает по принципу LIFO (Last In, First Out). Задачи попадают в стек в следующем порядке:

  1. Синхронный код выполняется сразу и добавляется в стек. Например:
javascript
function foo() {
  console.log('foo');
}
foo(); // попадает в стек
  1. Асинхронные операции (setTimeout, промисы, события) сначала обрабатываются Web API, затем их колбэки попадают в очередь задач (callback queue). Когда стек пуст, событийный цикл (event loop) перемещает их в стек.

  2. Макрозадачи (setTimeout, setInterval) и микрозадачи (промисы, queueMicrotask) имеют разный приоритет. Микрозадачи выполняются сразу после текущего синхронного кода, до макрозадач.

Пример:

javascript
console.log('1'); // синхронно
setTimeout(() => console.log('2'), 0); // макрозадача
Promise.resolve().then(() => console.log('3')); // микрозадача
// Вывод: 1, 3, 2
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы