Código da tecla Menos (-) em JavaScript

Para Menos (-), event.key é - (or _ with Shift), event.code é Minus e o obsoleto keyCode é 189. Pressione qualquer tecla no Localizador de Key Code para ver os valores em tempo real.

Atualizado em

PropriedadeValor
event.key- (or _ with Shift)
event.codeMinus
event.keyCode / which (obsoleto)189

Como detectar Menos (-)

document.addEventListener('keydown', (event) => {
  if (event.key === "-") {
    // Minus (-) 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 os valores variam entre navegadores e layouts.

Como os navegadores tratam Menos (-)

O Firefox historicamente reportava keyCode 173 para essa tecla, mais um motivo para usar event.key.

No React

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

Perguntas frequentes

Qual é o keyCode da tecla Menos (-)?
189. Mas ele está obsoleto: use event.key (“- (ou _ com Shift)”) ou event.code (Minus) em código novo.
Qual a diferença entre event.key e event.code?
event.key é o caractere ou ação que a tecla gera com o layout atual; event.code é a posição física da tecla, igual em todos os layouts.
Devo usar keydown ou keypress?
keydown. O evento keypress está obsoleto e não dispara para teclas que não geram caracteres, como Escape ou as setas.