Обычный JavaScript-код выполняется последовательно, а асинхронные операции организуются средой исполнения, Promise и очередями продолжений.
JavaScript — это синхронный или асинхронный язык?
Обычный JavaScript-код выполняется последовательно, а асинхронные операции организуются средой исполнения, Promise и очередями продолжений.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Обычный JavaScript-код выполняется последовательно, а асинхронные операции организуются средой исполнения, Promise и очередями продолжений.
В пределах одного агента выполняется один текущий стек JavaScript; await приостанавливает соответствующую async-функцию, но не весь поток. Сетевые операции и таймеры могут продвигаться вне этого стека. Workers позволяют отдельные агенты исполнения. Поэтому противопоставление «язык только синхронный или только асинхронный» слишком грубо: нужно различать модель выполнения и API среды.