Código da tecla Num Lock em JavaScript

Para Num Lock, event.key é NumLock, event.code é NumLock e o keyCode obsoleto é 144. Pressione qualquer tecla no Key Code Finder para ver os valores em tempo real.

Atualizado em

PropriedadeValor
event.keyNumLock
event.codeNumLock
event.keyCode / which (obsoleto)144

Como detectar o Num Lock

document.addEventListener('keydown', (event) => {
  if (event.key === "NumLock") {
    // Num Lock was pressed
  }
});

Use event.key para reagir ao que a tecla significa (ela segue o layout do teclado) e event.code para a posição física dela, por exemplo WASD em jogos. keyCode e which são obsoletos: ainda funcionam, mas seus valores variam entre navegadores e layouts.

Como os navegadores tratam o Num Lock

Com o Num Lock desligado, o teclado numérico envia teclas de navegação (Home, End, setas) em vez de números. Verifique event.getModifierState("NumLock").

No React

<input onKeyDown={(e) => { if (e.key === "NumLock") { /* … */ } }} />

Perguntas frequentes

Qual é o keyCode da tecla Num Lock?
144. Mas ele é obsoleto: use event.key (“NumLock”) ou event.code (NumLock) em código novo.
Qual é a diferença entre event.key e event.code?
event.key é o caractere ou ação que a tecla produz com o layout atual; event.code é a posição física da tecla, a mesma em todos os layouts.
Devo usar keydown ou keypress?
keydown. O evento keypress é obsoleto e não dispara para teclas que não produzem caracteres, como Escape ou as setas.