¿Que es el scope o alcance de una variable?
Mar 03, 2009 | Español | By Crysfel | 10 Comments | Read in EnglishCuando nos referimos al “scope” nos estamos refiriendo al alcance o al área donde una variable puede utilizarse, en este tema veremos como maneja JavaScript este concepto.
En JavaScript el alcance de las variables sucede de una función y no de bloques (if, while, switch, etc.) como en lenguajes Java o C/C++; en otras palabras si se define una variable dentro de un bloque condicional (if) esta variable se podrá utilizar en toda la función en cuestión y no solamente en el bloque definido. Veamos el siguiente ejemplo que demuestra lo que se acaba de mencionar:
if(true){
var test = 'is it a block var?';
}
function testing(){
var test = 'testing scope!';
}
testing();
console.debug(test);
Dentro de la condición se ha definido la variable “test”, en lenguajes como Java ésta variable debería existir sólo dentro de la condición, pero en JavaScript no sucede de esta manera ya que esa variable ha sido definida en el “global scope” y no dentro del bloque condicional. Por otro lado la variable que se definió dentro de la función “testing” sólo existe dentro de esa función.
Es importante mencionar que las variables declaradas en el “global scope” son propiedades del objeto “window”, para comprobar esta afirmación basta con hacer lo siguiente:
var global = 'this is a global var!'; console.debug(window.global);
Otro punto a tomar en cuenta es que cuando no se declaran las variables utilizando la palabra reservada “var” no importa si están dentro de una función o no, estas variables automáticamente serán definidas en el “global scope”.
function globalScopeFunction(){
globalScope = 'this is a new var in the global scope!';
}
globalScopeFunction();
console.debug(globalScope);
console.debug(window.globalScope);
Es importante saber estos conceptos pues los necesitaremos más adelante, además de que ahora sabremos con exactitud el alcance de las variables y donde podemos usarlas.







Crysfel este video se corta a los 12 segundos