В чем разница между синхронным и асинхронным кодом

«В чем разница между синхронным и асинхронным кодом» — вопрос из категории Асинхронность, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Синхронный код выполняется последовательно, каждая операция блокирует выполнение до своего завершения. Асинхронный код позволяет выполнять операции параллельно, не дожидаясь завершения предыдущих.

// Синхронный пример
console.log('1');
console.log('2'); // выполнится только после первого console.log

// Асинхронный пример
console.log('1');
setTimeout(() => console.log('2'), 0); // выполнится после основного потока
console.log('3');
// Вывод: 1, 3, 2

Ключевые отличия:

  • Синхронный код проще для понимания, но может блокировать интерфейс
  • Асинхронный код сложнее в отладке, но повышает производительность
  • В JavaScript асинхронность реализуется через колбэки, промисы, async/await