Skip to content

Instantly share code, notes, and snippets.

@tylerthebuildor
Created December 17, 2013 19:58
Show Gist options
  • Save tylerthebuildor/8011573 to your computer and use it in GitHub Desktop.
Save tylerthebuildor/8011573 to your computer and use it in GitHub Desktop.
List of JavaScript key codes.
backspace 8
tab 9
enter 13
shift 16
ctrl 17
alt 18
pause/break 19
caps lock 20
escape 27
page up 33
page down 34
end 35
home 36
left arrow 37
up arrow 38
right arrow 39
down arrow 40
insert 45
delete 46
0 48
1 49
2 50
3 51
4 52
5 53
6 54
7 55
8 56
9 57
a 65
b 66
c 67
d 68
e 69
f 70
g 71
h 72
i 73
j 74
k 75
l 76
m 77
n 78
o 79
p 80
q 81
r 82
s 83
t 84
u 85
v 86
w 87
x 88
y 89
z 90
left window key 91
right window key 92
select key 93
numpad 0 96
numpad 1 97
numpad 2 98
numpad 3 99
numpad 4 100
numpad 5 101
numpad 6 102
numpad 7 103
numpad 8 104
numpad 9 105
multiply 106
add 107
subtract 109
decimal point 110
divide 111
f1 112
f2 113
f3 114
f4 115
f5 116
f6 117
f7 118
f8 119
f9 120
f10 121
f11 122
f12 123
num lock 144
scroll lock 145
semi-colon 186
equal sign 187
comma 188
dash 189
period 190
forward slash 191
grave accent 192
open bracket 219
back slash 220
close braket 221
single quote 222
@longwangchao
Copy link

what does this all mean tho really my bad im new and trying to learn it but i really have a hard time understanding?

@cagriaydin
Copy link

Hello @longwangchao, They are key codes which are used for handle events of keyboard keys on javascript.

@hodgef
Copy link

hodgef commented Oct 9, 2018

Thank you for this! I renamed some keys and put it in a function here:
https://gist.github.com/hodgef/e190731ab6c5d297ab22e25811d8fea9

@SterlingButters
Copy link

space: 32

@Saj-Blu
Copy link

Saj-Blu commented Dec 17, 2018

Does anyone by chance know what the missing numbers are for? These being
0 - 7, 10 - 12, 14, 15, 21 - 26, 28 - 32, 41 - 44, 47, 58 - 64, 94, 95, 108, 124 - 143, 146 - 185, 193 - 218

That is a total of 126 missing codes. My guess is that these codes are codes for non-Latin QWERTY or other input methods, but I'd really like to know what they are, and if there are more ( 223+ ).

I have a source saying Cyrillic н is 1085, (not sure if it means ASCII charcode) so perhaps. Have to check out further... From what I'm reading the codes "indicate the key position by referencing one of a small number of standard keyboard models (ANSI, ISO, or JIS)". In terms of the missing codes, if true, that might indicate that those may be present in other layouts perhaps.

@speedysense
Copy link

Thank you for sharing this. However, here is JavaScript keyboard article which is helpful to understand Keyboard event properties and how to use it.

@Danziger
Copy link

Both e.which and e.keyCode are deprecated, so these codes are not relevant anymore, and even before they were not reliable as there were a ton of inconsistencies across different browsers and OSs.

You should use e.key or e.code instead. This is the way. Just keep in mind some old browsers used some non-standard codes, so left is usually 'LeftArrow' and right is 'RightArrow', but on IE and Legacy Edge they would be 'Left' and 'Right' instead.

You can easily check JavaScript KeyboardEvent properties (e.key, e.code, e.which,
e.keyCode… and more) with Key.js: https://keyjs.dev.

I will add information about these kinds of cross-browser incompatibilities soon!

@cLGitHubSOF
Copy link

thanks so much guys for all the tips now I can make a game with wasd and arrow keys in HTML JS, you could even make a typingclub with this

@tylerthebuildor
Copy link
Author

Woah I didn't realize this gist was being looked at 😅

Thanks for the update Danzinger.

Glad it's been a help to you cLGitHubSOF and others. Cheers! 🍻

@SX-9
Copy link

SX-9 commented Mar 25, 2022

Cool thx for the key codes ;)

@donnaken15
Copy link

donnaken15 commented Nov 6, 2022

for some reason windows is causing me to hit key 218 when i focus a window

@donnaken15
Copy link

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment