> For the complete documentation index, see [llms.txt](https://demirels-organization.gitbook.io/javascript-tutorial/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://demirels-organization.gitbook.io/javascript-tutorial/execution-order.md).

# Execution Order

In JavaScript, the execution order refers to the order in which code is executed by the JavaScript interpreter.

Code is generally executed from top to bottom, in the order that it appears in the script. For example:

```javascript
console.log('Hello');
console.log('World');
```

In this example, the `console.log` statements are executed in the order that they appear in the script. The output to the console will be:

```javascript
Hello
World
```

There are several factors that can affect the execution order in JavaScript, such as:

* Asynchronous operations: Code that performs asynchronous operations (such as fetching data from a server) may not be executed in the order that it appears in the script. This is because the asynchronous operation is run in the background, and the rest of the code continues to execute while the operation is being carried out.
* Function calls: When a function is called, the code inside the function is executed before the code following the function call.
* Event handlers: Code that is executed in response to an event (such as a user clicking a button) is not executed until the event occurs.

Here is an example that demonstrates the effect of these factors on the execution order:

```javascript
console.log('Starting...');

setTimeout(function() {
  console.log('Timeout callback');
}, 0);

console.log('Ending?');
```

In this example, the output to the console will be:

```javascript
Starting...
Ending?
Timeout callback
```

The `setTimeout` function is used to delay the execution of a callback function by 0 seconds. This means that the callback function is added to the event queue, but is not executed until the JavaScript interpreter has finished executing the rest of the code.

This is why the `console.log` statement inside the callback function is not executed until after the `console.log` statement at the end of the script.

The execution order in JavaScript can be affected by other factors as well, such as the use of async/await, promises, and the event loop. Understanding the execution order is important for writing correct and efficient JavaScript code.
