5.1 Ámbito global
Ámbitos (scopes) determinan la accesibilidad de variables y funciones en diferentes partes del programa. En JavaScript existen tres tipos principales de ámbitos: global, local y de bloque. Entender estos ámbitos es importante para administrar los datos eficazmente y prevenir errores en el código.
Ámbito global incluye todas las variables y funciones declaradas fuera de cualquier función o bloque de código. Estas variables y funciones están accesibles desde cualquier lugar del código.
Ejemplo 1: Declaración de variables globales
var globalVar = 'I am a global variable';
function showGlobalVar() {
console.log(globalVar); // Acceso a variable global
}
showGlobalVar(); // Muestra: I am a global variable
console.log(globalVar); // Acceso a variable global
Ejemplo 2: Funciones globales
En este ejemplo, la variable globalVar
y la función globalFunction()
están declaradas en el ámbito global y accesibles desde cualquier lugar en el código.
function globalFunction() {
return 'I am a global function';
}
console.log(globalFunction()); // Muestra: I am a global function
5.2 Ámbito local
Ámbito local incluye variables y funciones declaradas dentro de una función. Estas variables y funciones son accesibles solo dentro de esa función y no están disponibles fuera de ella.
Ejemplo 3: Declaración de variables locales
En este ejemplo, la variable localVar
se declara dentro de la función localScopeExample()
y no está disponible fuera de esa función:
function localScopeExample() {
var localVar = 'I am a local variable';
console.log(localVar); // Acceso a variable local
}
localScopeExample(); // Muestra: I am a local variable
console.log(localVar); // Error: localVar is not defined
Ejemplo 4: Funciones locales
En este ejemplo, la función innerFunction()
se declara dentro de la función outerFunction()
y
no está disponible fuera de outerFunction()
:
function outerFunction() {
function innerFunction() {
return 'I am a local function';
}
console.log(innerFunction()); // Acceso a función local
}
outerFunction(); // Muestra: I am a local function
console.log(innerFunction()); // Error: innerFunction is not defined
5.3 Ámbito de bloque
El ámbito de bloque incluye variables declaradas con let
y const
dentro de un bloque de código,
delimitado por llaves {}
. Estas variables son accesibles solo dentro de ese bloque y no fuera de él.
Ejemplo 5: Declaración de variables con let
En este ejemplo, la variable blockVar
se declara dentro del bloque if
y no está disponible fuera de él:
if (true) {
let blockVar = 'I am a block-scoped variable';
console.log(blockVar); // Acceso a variable de bloque
}
console.log(blockVar); // Error: blockVar is not defined
Ejemplo 6: Declaración de variables con const
En este ejemplo, la variable i
se declara dentro del bloque for
y no está disponible fuera de él:
for (const i = 0; i < 3; i++) {
console.log(i); // Acceso a variable de bloque
}
console.log(i); // Error: i is not defined
Características del ámbito de bloque
Ejemplo 7: Bloques anidados
En este ejemplo, la variable innerVar
está disponible solo dentro del bloque interno, mientras que la variable outerVar
está disponible tanto en el bloque externo como en el interno:
if (true) {
let outerVar = 'I am in the outer block';
if (true) {
let innerVar = 'I am in the inner block';
console.log(outerVar); // Acceso a variable del bloque externo
console.log(innerVar); // Acceso a variable del bloque interno
}
console.log(outerVar); // Acceso a variable del bloque externo
console.log(innerVar); // Error: innerVar is not defined
}
5.4 Interacción de diferentes ámbitos
Ejemplo 8: Interacción de ámbitos global y local
En este ejemplo, la función scopeExample()
tiene acceso a la variable global globalVar
y a su propia variable local localVar
:
var globalVar = 'I am a global variable';
function scopeExample() {
var localVar = 'I am a local variable';
console.log(globalVar); // Acceso a variable global
console.log(localVar); // Acceso a variable local
}
scopeExample(); // Muestra: I am a global variable
// I am a local variable
console.log(globalVar); // Acceso a variable global
console.log(localVar); // Error: localVar is not defined
Ejemplo 9: Ámbitos con función de flecha
En este ejemplo, la función de flecha arrowFunction()
tiene acceso a la variable global globalVar
y a su propia variable local localVar
:
let globalVar = 'I am a global variable';
const arrowFunction = () => {
let localVar = 'I am a local variable in arrow function';
console.log(globalVar); // Acceso a variable global
console.log(localVar); // Acceso a variable local
};
arrowFunction(); // Muestra: I am a global variable
// I am a local variable in arrow function
console.log(globalVar); // Acceso a variable global
console.log(localVar); // Error: localVar is not defined
GO TO FULL VERSION