JS обычно относят к категории интерпретируемых языков сценариев, поэтому предполагается, что большинство программ JS обрабатывается за один проход «сверху вниз». Но в действительности JS разбирается/компилируется в отдельной фазе до начала выполнения.