Да: setTimeout откладывает начало функции, но её длинный синхронный цикл затем выполняется в основном потоке и блокирует UI.
Заблокирует ли UI длинный синхронный цикл внутри setTimeout?
Да: setTimeout откладывает начало функции, но её длинный синхронный цикл затем выполняется в основном потоке и блокирует UI.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Да: setTimeout откладывает начало функции, но её длинный синхронный цикл затем выполняется в основном потоке и блокирует UI.
Пока цикл не завершится, обработчики ввода и отрисовка не смогут нормально продолжаться. Для CPU-работы используют Web Worker либо небольшие порции с передачей управления. Один setTimeout вокруг всей работы не делает её параллельной.