Code de la touche Shift en JavaScript

Pour Shift, event.key correspond à Shift, event.code à ShiftLeft / ShiftRight, et l’ancienne propriété keyCode vaut 16. Appuyez sur n’importe quelle touche dans le Key Code Finder pour voir ses valeurs en direct.

Mis à jour le

PropriétéValeur
event.keyShift
event.codeShiftLeft / ShiftRight
event.keyCode / which (obsolète)16

Comment détecter Shift

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

Utilisez event.key pour réagir à la signification de la touche (elle suit la disposition du clavier) et event.code pour sa position physique, par exemple WASD dans les jeux. keyCode et which sont obsolètes : ils fonctionnent encore, mais leurs valeurs diffèrent selon les navigateurs et les dispositions de clavier.

Comportement de Shift dans les navigateurs

Utilisez event.shiftKey pour vérifier si Shift est maintenu pendant une autre touche ou un clic : inutile de suivre vous-même les appuis sur Shift. Shift modifie event.key (« a » devient « A ») mais pas event.code.

Avec React

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

Questions fréquentes

Quel est le keyCode de Shift ?
16. Il est toutefois obsolète : dans du nouveau code, utilisez event.key (« Shift ») ou event.code (ShiftLeft).
Quelle est la différence entre event.key et event.code ?
event.key correspond au caractère ou à l’action produit par la touche avec la disposition actuelle ; event.code désigne la position physique de la touche, identique sur toutes les dispositions.
Faut-il utiliser keydown ou keypress ?
keydown. L’événement keypress est obsolète et ne se déclenche pas pour les touches qui ne produisent pas de caractère, comme Échap ou les flèches.