Letter key codes in JavaScript

Every letter key with its event.key, event.code and deprecated keyCode. keyCode for letters is the uppercase ASCII code, 65 (A) to 90 (Z), whether or not Shift is held.

Updated

Keyevent.keyevent.codekeyCode
Aa / AKeyA65
Bb / BKeyB66
Cc / CKeyC67
Dd / DKeyD68
Ee / EKeyE69
Ff / FKeyF70
Gg / GKeyG71
Hh / HKeyH72
Ii / IKeyI73
Jj / JKeyJ74
Kk / KKeyK75
Ll / LKeyL76
Mm / MKeyM77
Nn / NKeyN78
Oo / OKeyO79
Pp / PKeyP80
Qq / QKeyQ81
Rr / RKeyR82
Ss / SKeyS83
Tt / TKeyT84
Uu / UKeyU85
Vv / VKeyV86
Ww / WKeyW87
Xx / XKeyX88
Yy / YKeyY89
Zz / ZKeyZ90

Detecting a letter

document.addEventListener('keydown', (e) => {
  if (e.key.toLowerCase() === 's' && (e.ctrlKey || e.metaKey)) {
    e.preventDefault(); // Ctrl/Cmd + S
    save();
  }
});

Comparing e.key.toLowerCase() handles Shift and Caps Lock. For game controls that should stay in the same place on every layout, compare e.code ("KeyW", "KeyA", "KeyS", "KeyD") instead.

JavaScript Keycode FinderPress any key and instantly see every property of the keyboard event, with a copy-ready keydown snippet for shortcuts.
Open the tool

Frequently asked questions

Is event.key upper or lower case for letter?
Letters follow Shift and Caps Lock: event.key is “a” normally and “A” with Shift. event.code stays KeyA either way.
Do key codes change with the keyboard layout?
event.key changes with the layout (on a French AZERTY keyboard the A position types Q); event.code always names the physical key.
Should I still use keyCode?
No — it’s deprecated. Use event.key for characters and event.code for positions.