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

Когда у setTimeout вместо задержки 0 появляется другое значение

При вызове setTimeout(callback, 0) колбэк помещается в очередь макрозадач и выполнится после завершения текущего стека вызовов и всех микрозадач (например, промисов). Однако если указать задержку больше 0 (например, setTimeout(callback, 4)), движок может добавить дополнительную задержку:

  1. Минимальная задержка в браузерах обычно 4мс (может варьироваться)
  2. При вкладке в фоновом режиме таймеры замедляются (min 1000мс)
  3. Вложенные setTimeout с задержкой 0 могут увеличивать задержку

Пример:

js
console.time('timer');
setTimeout(() => {
  console.timeEnd('timer'); // Покажет ~4мс, а не 0
}, 0);

Это поведение специфично для браузеров и связано с оптимизацией производительности. В Node.js минимальная задержка может отличаться.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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