KeyCode Info

Tools

Press Any Key

?

Press any key on your keyboard to see its event properties

event.key
-
event.code
-
event.keyCode
-
event.which
-
event.location
-

Modifiers

Ctrl
Shift
Alt
Meta

Recent Keys (Last 20)

No keys pressed yet
Key event.code event.keyCode Category

Understanding event.key vs event.code

event.key

What it is: The actual character or key name that was pressed, considering the keyboard layout and any modifiers.

Examples:

  • "a" / "A" (character)
  • "Enter", "Escape" (key names)
  • "ArrowUp" (arrow)
  • " " (space)

Use for: Detecting actual character input, handling shortcuts like Ctrl+S

event.code

What it is: The physical location of the key on the keyboard, independent of layout and modifiers.

Examples:

  • "KeyA" (physical position)
  • "Enter", "Escape"
  • "ArrowUp"
  • "Space"

Use for: Game controls, key position detection

event.keyCode (Deprecated)

What it is: Numeric code for the key. Still works but shouldn't be used for new code.

Examples:

  • 65 for A/a
  • 13 for Enter
  • 27 for Escape

Use for: Legacy code only. Use event.key or event.code instead.

Keyboard Layout Matters

event.key changes based on keyboard layout:

  • QWERTY (US): Press physical "A" key → event.key = "a"
  • AZERTY (FR): Press physical "A" key → event.key = "q"
  • event.code: Same for all layouts = "KeyA"

Implication: Use event.code for games, event.key for text input.

JavaScript Code Snippets

Basic Event Listener
document.addEventListener('keydown', (event) => { console.log('Key:', event.key); console.log('Code:', event.code); console.log('KeyCode:', event.keyCode); }); // For keyup event document.addEventListener('keyup', (event) => { console.log('Key released:', event.key); });
Key Combination Detection
document.addEventListener('keydown', (event) => { // Detect Ctrl+S if (event.ctrlKey && event.key === 's') { event.preventDefault(); console.log('Save shortcut pressed!'); } // Detect Shift+Enter if (event.shiftKey && event.key === 'Enter') { console.log('Shift+Enter pressed!'); } // Detect Alt+Ctrl+K if (event.altKey && event.ctrlKey && event.key === 'k') { console.log('Alt+Ctrl+K pressed!'); } }); // Check all modifiers if (event.ctrlKey) console.log('Ctrl is pressed'); if (event.shiftKey) console.log('Shift is pressed'); if (event.altKey) console.log('Alt is pressed'); if (event.metaKey) console.log('Meta/Cmd is pressed');
Game-Style Keyboard Handler
const keys = {}; document.addEventListener('keydown', (event) => { keys[event.code] = true; }); document.addEventListener('keyup', (event) => { keys[event.code] = false; }); // Check multiple keys at once function updateGameState() { if (keys['KeyW']) console.log('Moving forward'); if (keys['KeyA']) console.log('Moving left'); if (keys['KeyS']) console.log('Moving backward'); if (keys['KeyD']) console.log('Moving right'); if (keys['Space']) console.log('Jumping'); } // Call in your game loop setInterval(updateGameState, 16); // ~60 FPS
Custom Keyboard Shortcut Handler
class KeyboardShortcuts { constructor() { this.shortcuts = new Map(); document.addEventListener('keydown', (e) => this.handle(e)); } register(combo, callback) { this.shortcuts.set(combo, callback); } handle(event) { const mods = [ event.ctrlKey ? 'ctrl' : '', event.shiftKey ? 'shift' : '', event.altKey ? 'alt' : '', event.metaKey ? 'meta' : '' ].filter(Boolean); const combo = [...mods, event.key].join('+'); if (this.shortcuts.has(combo)) { event.preventDefault(); this.shortcuts.get(combo)(); } } } // Usage const shortcuts = new KeyboardShortcuts(); shortcuts.register('ctrl+s', () => console.log('Save')); shortcuts.register('ctrl+shift+s', () => console.log('Save As')); shortcuts.register('ctrl+z', () => console.log('Undo'));
Detect Specific Keys
document.addEventListener('keydown', (event) => { // Arrow keys if (event.key === 'ArrowUp') console.log('Up arrow'); if (event.key === 'ArrowDown') console.log('Down arrow'); if (event.key === 'ArrowLeft') console.log('Left arrow'); if (event.key === 'ArrowRight') console.log('Right arrow'); // Special keys if (event.key === 'Enter') console.log('Enter key'); if (event.key === 'Escape') console.log('Escape key'); if (event.key === 'Tab') console.log('Tab key'); if (event.key === ' ') console.log('Space key'); if (event.key === 'Backspace') console.log('Backspace key'); if (event.key === 'Delete') console.log('Delete key'); // Function keys if (event.key === 'F1') console.log('F1 pressed'); if (event.key === 'F12') console.log('F12 pressed'); });
\xF0\x9F\x92\x99 Tip\xF0\x9F\x93\x9A Get Bundle \x244.99