Есть целый класс операций в JS которые выполняются всегда асинхронно - это вызов обработчиков событий, запросы ajax, таймауты и интервалы. Выполнение асинхронно означает если очень упрощать то следующее:
Операция будет выполнена как минимум после выполнения остальных синхронных операций в стеке.