Capítulo 7: Introducción a los Eventos
Los eventos son la forma en que JavaScript responde a las acciones del usuario (clics, teclas, movimientos del ratón). Sin eventos, no hay interactividad. Este capítulo introduce el modelo de eventos de JavaScript.
7.1. ¿Qué es un evento? Modelo asíncrono básico
Un evento es algo que sucede en el navegador o en una página web: el usuario hace clic, teclea, mueve el ratón, etc.
JavaScript es fundamentalmente asíncrono: cuando estableces un "listener" de evento, le estás diciendo al navegador: "cuando esto suceda, ejecuta esta función". El navegador espera y ejecuta el código cuando sea necesario.
// Pseudocódigo del flujo:
// 1. Página carga
// 2. Código JavaScript se ejecuta (registra listeners)
// 3. JavaScript ESPERA a que suceda algo
// 4. Usuario hace clic
// 5. Se ejecuta el callback del evento
// 6. Continúa el JavaScript7.2. addEventListener: La forma correcta de escuchar
addEventListener: La forma correcta de escucharaddEventListener() es el método moderno y recomendado para registrar listeners de eventos.
Sintaxis: elemento.addEventListener(tipo, callback, opciones)
// HTML: <button id="btn">Haz clic</button>
const boton = document.querySelector('#btn');
// Registrar listener
boton.addEventListener('click', function(evento) {
console.log("¡El usuario hizo clic!");
});
// Con arrow function (más común)
boton.addEventListener('click', (evento) => {
console.log("Clic detectado");
});Ventajas de addEventListener:
Puedes registrar múltiples listeners para el mismo evento
Fácil de quitar después (
removeEventListener)Soporta opciones avanzadas (captura, una sola vez, etc.)
7.3. El objeto Event: propiedades comunes
Event: propiedades comunesCuando ocurre un evento, el navegador crea un objeto Event que contiene información sobre lo sucedido.
Propiedades importantes:
event.type: El tipo de evento ("click", "keydown", etc.)event.target: El elemento que disparó el evento (donde pasó la acción)event.currentTarget: El elemento que tiene el listener (puede ser diferente si hay bubbling)event.timeStamp: Cuándo sucedió (en milisegundos)event.preventDefault(): Cancela la acción por defecto
7.4. Eliminar eventos: removeEventListener
removeEventListenerSi necesitas dejar de escuchar un evento, usa removeEventListener. Importante: Debes pasar la misma función que registraste.
Patrón: Guardar referencia a la función
7.5. El problema de this en los eventos y Arrow Functions
this en los eventos y Arrow FunctionsEste es un tema sutil pero importante. El valor de this dentro de un listener depende de cómo lo definas.
7.6. Eventos inline (NO recomendado)
Existe una forma antigua de registrar eventos directamente en HTML. No la uses en código profesional:
Resumen del Capítulo
Los eventos son el mecanismo por el cual JavaScript responde a acciones del usuario. addEventListener() es la forma moderna y flexible de registrar listeners. Recuerda entender el objeto Event y ser consciente de cómo se comporta this en los listeners, especialmente cuando trabajas con clases o métodos.
💡 Conceptos Clave:
Evento: Acción que sucede en el navegador (clic, tecla, movimiento)
addEventListener(): Registrar un listener de forma moderna
Objeto Event: Contiene información sobre lo que sucedió
event.target: El elemento que disparó el evento
event.preventDefault(): Cancela la acción por defecto
removeEventListener(): Dejar de escuchar (mismo callback)
thisen listeners: Cuidado con el contextoArrow functions: Heredan
thisdel contexto exterior
🤔 Preguntas de Reflexión:
¿Cuál es la diferencia entre
event.targetyevent.currentTarget?¿Por qué no puedes hacer
removeEventListenercon una función anónima?¿Cómo se comporta
thisen un listener si usas una arrow function vs una función normal?¿Qué es el "bubbling" de eventos? (Adelanto para el Cap. 10)
¿Cuándo usarías
preventDefault()en un evento?Registra dos listeners diferentes en el mismo elemento para el evento 'click'.
Última actualización
¿Te fue útil?