JavaScript использует функции обратного вызова (коллбэки) для асинхронных операций, потому что они позволяют «запланировать» действие, которое будет совершено после выполнения какого-то другого, возможно длительного действия. 1
Это важно, так как при выполнении одной тяжёлой операции весь код, который следует после неё, может заморозиться. 3 В таком случае скрипт блокируется, и страница становится неотзывчивой. 3
С помощью колбэков можно, например, отложить загрузку изображения и сразу показать пользователю текстовый контент на странице, а не ждать его появления только после прогрузки изображения. 3