Es wäre ja ziemlich unsinnig wenn JS komplett asynchron wäre.
Eine Funktion ruft man meistens auf weil man will das genau jetzt etwas passiert und das dann auch fertig ist, bevor der nächste Aufruf passiert.
Ohne diese Annahme wäre Programmcode nicht mehr lesbar oder verstehbar.
Das asynchrone sind Ausnahmen, z.B. AJAX woman nicht weiß ob und wann die Antwort kommt, dann wird der Rest des Codes nicht gebremst.