按下任意键查看键码
(点击此处后按键)
(点击此处后按键)
| 属性 | 值 | 说明 |
|---|---|---|
| event.key | - | 按键的字符含义,受 Shift 与输入法影响,推荐使用 |
| event.code | - | 物理按键位置,与键盘布局无关,推荐使用 |
| event.keyCode | - | 已废弃但仍被广泛支持,不建议在新项目里使用 |
| event.which | - | 已废弃的 jQuery 时代写法 |
| event.location | - | 按键位于标准区、左侧、右侧还是小键盘 |
| 修饰键状态 | - | 是否同时按下了 Ctrl / Shift / Alt / Meta |
常用键码对照表
前端开发建议
① 新代码请用 event.key 判断字符、event.code 判断物理按键,避免依赖已废弃的 keyCode。
② 用 code 的好处是兼容不同键盘布局:无论用户是 QWERTY 还是 AZERTY,按下左上角第一个字母键时 code 都是 KeyQ。
③ 组合键判断用 event.ctrlKey、metaKey 等布尔属性,不要自己拼 keyCode 的位运算。
④ macOS 的 Command 键对应 event.metaKey,不要只判断 ctrlKey。
⑤ 移动端软键盘不保证触发全部按键事件,涉及输入请优先使用 input 事件。
① 新代码请用 event.key 判断字符、event.code 判断物理按键,避免依赖已废弃的 keyCode。
② 用 code 的好处是兼容不同键盘布局:无论用户是 QWERTY 还是 AZERTY,按下左上角第一个字母键时 code 都是 KeyQ。
③ 组合键判断用 event.ctrlKey、metaKey 等布尔属性,不要自己拼 keyCode 的位运算。
④ macOS 的 Command 键对应 event.metaKey,不要只判断 ctrlKey。
⑤ 移动端软键盘不保证触发全部按键事件,涉及输入请优先使用 input 事件。
本工具在浏览器本地运行,输入的数据不会上传服务器。
这个工具做什么
点击上方的方框,然后按键盘上的任意键,就能看到浏览器为该按键提供的全部信息。做键盘快捷键、游戏控制、表单交互时,这是最直接的查表方式。
key、code、keyCode 该用哪个
- event.key:反映"输入了什么字符"。按 a 得到 "a",按住 Shift 得到 "A",中文输入法下可能得到中文标点,回车是 "Enter"。适合判断用户意图。
- event.code:反映"按了哪个物理位置"。左 Shift 是 "ShiftLeft",右 Shift 是 "ShiftRight",字母键是 "KeyA" 形式。适合做游戏控制与快捷键,不受键盘布局与输入法影响。
- event.keyCode:历史上最常用的数字编码,现已被标准废弃,但在旧代码与旧教程中随处可见,因此仍有查阅价值。它在不同浏览器间存在过不一致,这正是被废弃的原因。
常见坑
中英文输入法状态下,key 的表现差异很大(例如按同样位置可能得到"、"或 "/"),这也是推荐用 code 做快捷键判断的主要原因。
你可能还想问
keyCode 和 key 有什么区别?
keyCode 是键位物理编码的数字(已废弃但仍兼容最好),key 是字符值(如 a、Enter);新项目建议监听 key 或 code,兼容老浏览器再用 keyCode 兜底。
为什么字母键码大小写一样?
keyCode 反映物理键位,不区分大小写:A 与 a 都是 65;需要区分大小写时读 event.key 或结合 shiftKey 状态判断,别依赖 keyCode。
数字小键盘的键码不同吗?
不同。小键盘数字键的 keyCode 带 Numpad 前缀的 code 值,与主键盘数字区不同;做游戏快捷键或键位自定义功能时要分别适配。
速查在线工具箱