Ámbitos
El ámbito (scope) es el contexto en el que una variable es accesible. Dependiendo del tipo de declaración que se use (var, let, o const), el scope puede ser global, de función o de bloque.
Scope global
Una variable tiene scope global cuando se declara fuera de cualquier función o bloque. Estas variables pueden ser accedidas desde cualquier parte del código.
var globalVar = "Estoy en el ámbito global";
function mostrarGlobal() {
console.log(globalVar); // "Estoy en el ámbito global"
}
mostrarGlobal();
Scope de función
Una variable tiene scope de función cuando se declara dentro de una función usando var. Solo puede ser accedida dentro de esa función.
function mostrarLocal() {
var localVar = "Estoy en el ámbito de la función";
console.log(localVar); // "Estoy en el ámbito de la función"
}
mostrarLocal();
console.log(localVar); // Error: localVar is not defined
Scope de bloque
El scope de bloque es aplicable a las variables declaradas con let o const. Estas solo existen dentro del bloque ({}) en el que se declaran, incluyendo bloques de funciones, condicionales y bucles.
if (true) {
let bloqueLet = "Estoy en el ámbito de bloque";
const bloqueConst = "Soy una constante en un bloque";
console.log(bloqueLet); // "Estoy en el ámbito de bloque"
console.log(bloqueConst); // "Soy una constante en un bloque"
}
console.log(bloqueLet); // Error: bloqueLet is not defined
console.log(bloqueConst); // Error: bloqueConst is not defined