# Compreendendo eventos de teclado em JavaScript
Quando um usuário pressiona uma tecla, o navegador dispara três eventos:keydown, keypress e keyup. Cada um expõe propriedades com informações sobre a tecla pressionada, mas nem todas são equivalentes ou recomendadas.# Propriedades de eventos de tecla
event.code — A tecla física
Retorna o identificador da posição física da tecla no teclado, usando nomenclatura QWERTY. Por exemplo, a tecla "A" em um teclado AZERTY retorna KeyQ. Ideal para controles de jogos onde a posição importa, não o carácter.
event.key — O carácter gerado
Retorna o valor de carácter gerado de acordo com o idioma e modificadores ativos. Pressionar Shift+A retorna "A"; sem Shift retorna "a". Para teclas especiais, retorna nomes como "Enter", "Escape", "ArrowUp".
# Quando usar cada propriedade
event.code para controles de jogos (WASD independentemente do idioma) e event.key para detectar carácteres específicos ou atalhos de teclado semânticos como Ctrl+C. event.which e event.keyCode estão oficialmente deprecadas de acordo com o padrão W3C. Embora os navegadores modernos continuem a suportá-las para compatibilidade, elas não devem ser usadas em código novo.