Código da tecla Shift em JavaScript

Para Shift, event.key é Shift, event.code é ShiftLeft / ShiftRight e o obsoleto keyCode é 16. Pressione qualquer tecla no Key Code Finder para ver seus valores em tempo real.

Atualizado em

PropriedadeValor
event.keyShift
event.codeShiftLeft / ShiftRight
event.keyCode / which (obsoleto)16

Como detectar Shift

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

Use event.key para reagir ao que a tecla significa (ela segue o layout do teclado) e event.code para sua posição física, 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 Shift

Use event.shiftKey para verificar se Shift está pressionada durante outra tecla ou clique — não monitore você mesmo os pressionamentos de Shift. Shift altera event.key (“a” vira “A”), mas não event.code.

No React

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

Perguntas frequentes

Qual é o keyCode da tecla Shift?
16. Porém, ele está obsoleto: use event.key (“Shift”) ou event.code (ShiftLeft) 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, 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 produzem caracteres, como Escape ou as setas.