# Entendiendo los eventos de teclado en JavaScript
Cuando un usuario pulsa una tecla, el navegador dispara tres eventos:keydown, keypress y keyup. Cada uno expone propiedades con información sobre la tecla pulsada, pero no todas son equivalentes ni recomendadas.# Propiedades clave del evento
event.code — La tecla física
Devuelve el identificador de la posición física de la tecla en el teclado, usando nomenclatura QWERTY. Por ejemplo, la tecla "A" en un teclado AZERTY devuelve KeyQ. Ideal para controles de videojuegos donde importa la posición, no el carácter.
event.key — El carácter generado
Devuelve el valor del carácter generado según el idioma y modificadores activos. Si pulsas Shift+A devuelve "A"; sin Shift devuelve "a". Para teclas especiales devuelve nombres como "Enter", "Escape", "ArrowUp".
# Cuándo usar cada propiedad
event.code para controles de juego (WASD independiente del idioma) y event.key para detectar caracteres específicos o atajos de teclado semánticos como Ctrl+C. event.which y event.keyCode están oficialmente obsoletas según el estándar W3C. Aunque los navegadores modernos las siguen soportando por compatibilidad, no deben usarse en código nuevo.