Newsletter

Scope en JavaScript: variables locales y globales explicadas

En JavaScript, una variable tiene un alcance de visibilidad llamado scope. Dónde la declares decide ese alcance: dentro de una función se queda local a esa función; fuera de cualquier función pasa a ser global y se lee desde todo el script.

Scope en JavaScript: variables locales y globales explicadas

En JavaScript, las variables tienen un alcance de visibilidad que se llama scope. Es una noción importante en JavaScript, porque es una fuente habitual de errores: según dónde declares la variable, su scope cambia. Si la declaras dentro de una función, solo podrás usarla en esa función. Hay dos tipos de variables, las variables locales y las variables globales.

javascript
var tutu = "tutu"; // 1

function maFonction() {
    var toto = "toto"; // 2
    return toto;
}
  1. tutu es lo que llamamos una variable global: se puede usar en cualquier parte del script, funciones incluidas.
  2. toto también es una variable, pero local: no se puede usar fuera de su función.

Variables locales

Cuando creas una variable local, es decir, una variable declarada dentro de una función con var, solo puedes usarla dentro de esa función. Se dice que esa variable es local, o que su alcance es el de la función donde se declaró. No se puede leer desde fuera. El navegador crea las variables locales al ejecutar la función y las elimina en cuanto la función termina. Dos cosas más que conviene saber:

  • Dos funciones distintas pueden usar variables con el mismo nombre sin provocar ningún conflicto de nombres.
  • Si la función se llama varias veces, la variable puede tener un valor diferente en cada llamada.

Variables globales

Las variables globales se pueden usar en cualquier parte del script, se declaran fuera de toda función. Se dice que su alcance es global.
Las variables globales se guardan en la memoria del navegador. Por tanto ocupan más memoria que las locales y aumentan el riesgo de colisiones de nombres con otros scripts. Por eso conviene tirar de variables locales siempre que puedas.

JavaScript

Damien Flandrin Desarrollador web desde 2010, creador de Gekkode y de Email Impact. Cada artículo se prueba en un proyecto real antes de publicarse. Contacto
Newsletter

Las nuevas pruebas, tutoriales y proyectos, por correo.

Pruebas reproducibles, código versionado, resultados fechados. Nunca spam.