Código de tecla Menos (-) en JavaScript

Para Menos (-), event.key es - (or _ with Shift), event.code es Minus y la propiedad obsoleta keyCode es 189. Pulsa cualquier tecla en el Buscador de códigos de tecla para ver sus valores en vivo.

Actualizado el

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

Cómo detectar Menos (-)

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

Usa event.key para reaccionar a lo que significa la tecla (sigue la distribución del teclado) y event.code para su posición física, por ejemplo WASD en juegos. keyCode y which están obsoletos: siguen funcionando, pero sus valores varían entre navegadores y distribuciones.

Cómo tratan los navegadores Menos (-)

Firefox históricamente devolvía keyCode 173 para esta tecla, otra razón para usar event.key.

En React

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

Preguntas frecuentes

¿Cuál es el keyCode de Menos (-)?
189. Pero está obsoleto: en código nuevo usa event.key (“- (o _ con Shift)”) o event.code (Minus).
¿Cuál es la diferencia entre event.key y event.code?
event.key es el carácter o la acción que produce la tecla con la distribución actual; event.code es la posición física de la tecla, igual en todas las distribuciones.
¿Debo usar keydown o keypress?
keydown. El evento keypress está obsoleto y no se dispara para teclas que no producen caracteres, como Escape o las flechas.