JavaScript - Hoisting

JavaScript - Hoisting

Table of contents

No heading

No headings in the article.

En JavaScript puedes hacer referencia a una variable declarada más tarde, sin obtener una excepción.

Este concepto se conoce como elevación. Las variables en JavaScript son, en cierto sentido, "elevadas" (o "izadas") a la parte superior de la función o declaración. Sin embargo, las variables que se elevan devuelven un valor de undefined. Entonces, incluso si la declaras e inicias después de usarla o hacer referencia a esta variable, todavía devuelve undefined.

Por ejemplo:

console.log(nombre); // Undefined

var nombre = "matias"

console.log(nombre) // "matias"

En este excelente video se explica detalladamente el hoisting.

Debido a la elevación, todas las declaraciones var en una función se deben colocar lo más cerca posible de la parte superior de la función. Esta buena práctica aumenta la claridad del código.

En ECMAScript 2015, let y const se elevan pero no se inician. Hacer referencia a la variable en el bloque antes de la declaración de la variable da como resultado un ReferenceError, porque la variable está en una "zona muerta temporal" desde el inicio del bloque hasta que se procesa la declaración.

Para entender mejor que es la zona muerta temporal dejo este video: