Functions in JavaScript: declarations, arrow functions and closures
function vs arrow (=>), default parameters, rest/spread, functions that return functions and closures, with interactive labs.
Hay dos formas de crear funciones. La arrow function (=>) es más corta y
es lo que verás en el 90 % del código moderno.
function sumar(a, b) {
return a + b;
}
const sumar = (a, b) => a + b; // arrow: si es una expresión, return implícito
Parameters: default and rest
const saludar = (nombre, saludo = "Hola") => `${saludo}, ${nombre}!`;
const sumarTodos = (...numeros) => numeros.reduce((a, b) => a + b, 0);
Closures
Una función «recuerda» las variables del sitio donde se creó, aunque ese sitio ya haya terminado. Eso es una closure. Ejemplo clásico: un contador privado.
function crearContador() {
let cuenta = 0; // privada: solo la ven las funciones de aquí dentro
return () => ++cuenta;
}
const siguiente = crearContador();
siguiente(); // 1
siguiente(); // 2
Check what you've learned
const f = (a, b) => a + b; — ¿qué devuelve f(2, 3)?const f = (...n) => ..., n es…siguiente() devuelve 1, 2, 3… porque…