# 4.4 Revisión

Podemos ser tentados a mirar `var a = 2;` como una declaración, pero el Motor de JavaScript no lo ve así. Ve `var a` y `a = 2` como dos sentencias separadas, la primera es una tarea de fase-compilador y la segunda es una tarea de fase-ejecución.

Lo que esto lleva a que todas las declaraciones en un ámbito, independientemente de dónde aparezcan, se procesan primero antes de ejecutar el propio código. Se puede visualizar esto como declaraciones (variables y funciones) que se "mueven" a la parte superior de sus respectivos ámbitos, que llamamos "hoisting".

Las declaraciones mismas son elevadas, pero las asignaciones, incluso las asignaciones de las expresiones de la función, no se elevan.

Tenga cuidado con las declaraciones duplicadas, especialmente mezcladas entre las declaraciones normales de `var` y las declaraciones de funciones - ¡el peligro lo espera si lo hace!


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://daniel-morales.gitbook.io/javascript-avanzado-en-espanol/ii-scope-and-closures/4-hoisting/44-revision.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
