Códigos de teclado
Pressione qualquer tecla para ver em tempo real event.key, event.code e o keyCode legado, além do estado das modificadoras e o histórico das últimas 10 teclas.
Aguardando uma tecla…
Pressione qualquer tecla — os valores atualizam na hora, sem caixa de texto.
Próximos passos
Esta ferramenta roda inteiramente no seu navegador. Seus dados nunca saem do seu dispositivo e não são enviados a nenhum servidor.
Como usar
- 1Clique em qualquer ponto da página para dar foco de teclado e pressione uma tecla.
- 2Leia event.key, event.code e keyCode nos três cartões; Ctrl/Alt/Shift/Meta acendem enquanto estiverem pressionadas.
- 3Ative "ignorar auto-repetição" para filtrar as repetições e compare teclas na tabela das últimas 10.
Códigos de teclado
Bugs de teclado costumam vir de confundir os três valores de um KeyboardEvent: event.key é o caractere produzido ("a" ou "A" com Shift), event.code é a tecla física (KeyA independentemente do layout) e keyCode é o código numérico legado de que código antigo ainda depende. Pressionar teclas nesta página mostra os três lado a lado, na hora, junto com as modificadoras pressionadas naquele momento.
Também guarda as últimas 10 teclas numa tabela de histórico, para comparar valores entre teclas em vez de pressionar e esquecer. Útil para controles de jogo, atalhos ou depurar por que um handler keydown dispara duas vezes (ative ignorar repetição para filtrar a auto-repetição).
Perguntas frequentes
Por que event.key e event.code diferem para a mesma tecla?
event.key informa o caractere produzido com o layout e as modificadoras atuais ("A", "á", "1"), enquanto event.code informa a posição física (KeyA, Digit1) independente do layout. Atalhos devem comparar code; manipulação de texto deve ler key.
keyCode está obsoleto?
Sim — é legado, mantido só por compatibilidade com código antigo que decide por números como 13 (Enter) ou 27 (Escape). Código novo deve usar event.key ou event.code; a ferramenta o mostra para mapear constantes antigas na migração.
Por que o mesmo valor se repete ao segurar uma tecla?
Segurar uma tecla faz o sistema enviar eventos keydown repetidos com repeat true. Ative "ignorar auto-repetição" para exibir só a primeira pressão; desative se precisa verificar que seu handler recebe eventos de repetição.
How accurate are the results?
Calculations follow the official definitions — SI conversion factors, NIST constants, or the governing formula shown on the page — and results display to enough significant digits for real-world use.
Can I use it on mobile?
Yes. The interface is responsive and all inputs adapt to touch; the calculation itself runs offline once loaded.
Esta ferramenta é gratuita?
Sim, totalmente gratuita — sem cadastro, sem assinatura, sem limites diários e sem marcas d'água.
Ferramentas relacionadas
Texto para Unicode
Escape qualquer texto para \uXXXX, \u{...}, U+XXXX ou pontos de código decimais — e decodifique todos de volta. Seguro para emojis, instantâneo, 100% local.
Gerador de números aleatórios
Gere números verdadeiramente aleatórios em qualquer faixa — avulsos, em lote ou sorteios únicos sem repetição — com o gerador criptográfico do navegador.
Gerador de senhas
Gere senhas e frases-senha fortes no navegador com entropia em tempo real — aleatoriedade criptográfica, nada é enviado ou armazenado.
Codificador Base64
Codifique texto em Base64 na hora com suporte total a UTF-8 — emojis, acentos e caracteres CJK ficam intactos. Grátis, privado, nada sai do navegador.
Escapar / reverter HTML
Escape ou reverta entidades HTML ao vivo enquanto digita: & < > e aspas viram referências seguras, com modo numérico opcional para não ASCII.
Gerador de Hash
Calcule hashes SHA-1, SHA-256, SHA-384, SHA-512 ou MD5 de texto ou arquivos direto no navegador. Checksums rápidos para integridade — nada é enviado.
Incorporar esta ferramenta
Coloque esta ferramenta no seu site com uma linha — ela roda no navegador do visitante.
<iframe src="https://zoyku.com/pt/tools/keycode-info?embed=1" width="100%" height="640" style="border:0;border-radius:16px" title="Zoyku — keycode-info" loading="lazy"></iframe>