Scope se refiere a las reglas que definen la visibilidad y accesibilidad de las variables en el código. En JavaScript, existen dos tipos de scope: global y local. Las variables declaradas fuera de una función tienen un scope global, mientras que las variables declaradas dentro de una función tienen un scope local. Por ejemplo:
let nombre = 'Juan'; // scope global
function saludar() {
let nombre = 'María'; // scope local
console.log(`Hola ${nombre}!`);
}
saludar(); // output: Hola María!
console.log(`El nombre es ${nombre}`); // output: El nombre es Juan
Hoisting es la capacidad de JavaScript de “elevar” las declaraciones de variables y funciones al comienzo del ámbito actual. Por ejemplo:
console.log(mensaje); // output: undefined
var mensaje = 'Hola';
saludar(); // output: Hola
function saludar() {
console.log('Hola');
}
Aunque la variable mensaje se declara después de la llamada a console.log()
, JavaScript “eleva” la declaración al comienzo del ámbito actual. De esta forma, cuando se ejecuta console.log()
, la variable mensaje ya existe, aunque su valor sea undefined
.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?