Junior
¿Qué es el ámbito en JavaScript?
sobes.tech AI
Respuesta de la IA
El ámbito (Scope) en JavaScript es el contexto en el que se definen y están disponibles las variables y funciones.
En términos simples, determina dónde se puede hacer referencia a una variable o función en el código.
Existen varios tipos de ámbitos:
- Ámbito global (Global Scope): Las variables declaradas fuera de cualquier función están en el ámbito global. Son accesibles desde cualquier lugar del código.
// Variable global let globalVar = "Soy visible en todas partes"; function showGlobal() { console.log(globalVar); // Disponible dentro de la función } showGlobal(); - Ámbito local (Local/Function Scope): Las variables declaradas dentro de una función están en el ámbito local de esa función. Solo son accesibles dentro de esa función y en las funciones anidadas, pero no desde fuera.
function showLocal() { // Variable local let localVar = "Solo me veo aquí"; console.log(localVar); } showLocal(); // console.log(localVar); // Error: localVar no está definida - Ámbito de bloque (Block Scope): Introducido en ES6 (ES2015) con
letyconst. Las variables declaradas conletoconstdentro de llaves ({}), ya sea en bloques de código, bucles o condicionales, tienen ámbito de bloque. Las variables declaradas convarno tienen ámbito de bloque.if (true) { // Variable con ámbito de bloque let blockVar = "Solo visible en este bloque"; console.log(blockVar); } // console.log(blockVar); // Error: blockVar no está definida for (let i = 0; i < 2; i++) { // Variable con ámbito de bloque en el ciclo console.log(i); } // console.log(i); // Error: i no está definida (si se usó let)
También es importante entender el concepto de cadena de ámbitos (Scope Chain). Cuando JavaScript intenta encontrar el valor de una variable, primero busca en el ámbito actual. Si no la encuentra, pasa al ámbito externo (padre), y así sucesivamente, hasta llegar al ámbito global. Si no se encuentra en ninguna parte, se lanza un error ReferenceError.