Módulo 3·practica·6h
Objetivos de aprendizaje
- Comprender el scope de bloque, función y global.
- Explicar qué es un closure y cuándo se usa.
- Pasar funciones como argumento (callbacks).
- Usar forEach, map, filter y reduce con funciones personalizadas.
Funciones en JavaScript (Parte II)
Scope (ámbito de variables)
El scope define dónde es visible una variable.
javascript
// Scope global
const global = "soy global";
function ejemplo() {
// Scope de función
const local = "soy local";
console.log(global); // ✅ accesible
console.log(local); // ✅ accesible
}
console.log(global); // ✅
console.log(local); // ❌ ReferenceError
// Scope de bloque (let y const)
if (true) {
let bloqueada = "solo en el bloque";
const tambien = "igual";
}
console.log(bloqueada); // ❌ ReferenceErrorClosures
Un closure es una función que recuerda las variables de su scope exterior, incluso después de que esa función exterior haya terminado.
javascript
function crearContador() {
let count = 0; // variable "encerrada"
return function incrementar() {
count++;
return count;
};
}
const contador = crearContador();
console.log(contador()); // 1
console.log(contador()); // 2
console.log(contador()); // 3
// Cada llamada a crearContador() crea su propio scope
const otroContador = crearContador();
console.log(otroContador()); // 1 (independiente)Callbacks y funciones de orden superior
Una función de orden superior recibe o retorna otra función.
javascript
// forEach con callback
const numeros = [1, 2, 3, 4, 5];
numeros.forEach(function(n) {
console.log(n * 2);
});
// Con arrow function (forma más común)
numeros.forEach(n => console.log(n * 2));
// Función personalizada como callback
function esPar(n) { return n % 2 === 0; }
const pares = numeros.filter(esPar);
// [2, 4]Práctica interactiva · JavaScript