Una guía visual e interactiva para dominar conceptos clave de JavaScript.
// 1. Declaración estándar (Tiene Hoisting: puedes llamarla antes de crearla)
function calcularArea(base, altura) {
return base * altura;
}
// 2. Expresión (Guardada en variable, NO tiene hoisting)
const saludar = function(nombre) {
return `Hola, ${nombre}`;
};
=>{} y la palabra
return.this: No crean su propio this, sino que heredan el del
lugar donde fueron escritas.// Sintaxis Completa (Larga)
const sumar = (a, b) => {
return a + b;
};
// Sintaxis Corta (Retorno implícito automático en una sola línea)
const duplicar = x => x * 2;
miCallback). Si le
pones paréntesis miCallback(), la ejecutarás de inmediato en lugar de pasarla como parámetro.
function procesarUsuario(id, instruccionAlTerminar) {
console.log(`1. Buscando usuario ${id}...`);
// Ejecutamos la función recibida agregando los paréntesis ()
instruccionAlTerminar("Carlos");
}
// Pasamos una función flecha como segundo parámetro:
procesarUsuario(10, (nombre) => {
console.log(`2. ¡Usuario encontrado: ${nombre}!`);
});
const obtenerDatos = () => {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve("✅ ¡Datos cargados con éxito!");
}, 1500);
});
};
// Consumo básico con .then()
obtenerDatos().then(respuesta => console.log(respuesta));
async: Se pone antes de la función para indicar que usará tareas asíncronas.await: Pausa la ejecución únicamente dentro de esa función hasta que la
promesa responda.const pedirServidor = async () => {
try {
// El código se "pausa" aquí hasta que obtenerDatos() termine:
const resultado = await obtenerDatos();
console.log(resultado);
} catch (error) {
console.error("Ocurrió un error:", error);
}
};
const boton = document.querySelector('button');
// Opción A: Pasando una Arrow Function directamente
boton.addEventListener('click', (evento) => {
console.log("¡Hiciste clic!");
});
// Opción B: Pasando el nombre de una función existente (SIN paréntesis)
function miManejador() {
console.log("Clic detectado");
}
boton.addEventListener('click', miManejador);