JavaScript keyCode 常用键码值参考表
在早期的 Web 开发中,keyCode 是识别键盘按键的主要方式。本文整理了完整的键码对照表,涵盖字母、数字、功能键及方向键等常见按键的具体数值,帮助开发者维护遗留系统或理解基础键盘事件机制,同时也指出了现代 JavaScript 中更推荐的替代方案。
什么是 keyCode 及其现状
keyCode 属性属于 KeyboardEvent 对象,在用户按下或释放键盘键时触发事件(如 keydown、keyup)。它返回一个无符号 16 位整数,代表按下的物理键。
需要注意的是,keyCode 已被废弃(Deprecated)。在现代浏览器和 W3C 标准中,推荐使用 KeyboardEvent.key(获取字符值)和 KeyboardEvent.code(获取物理按键代码)来替代。但在维护老项目或处理特定兼容层时,了解具体的键码值仍然具有实用价值。
常见键码值速查表
以下数据基于标准的 keyCode 映射逻辑整理。请注意,不同操作系统(Windows/macOS)和部分浏览器的实现可能存在细微差异,以下以通用 Windows/Chrome 环境为基准。
第1步:字母与数字主键盘区
这部分对应键盘上最常见的 A-Z 字母及上方数字行。对于数字行,不同浏览器早期对大数字键(7-0)的处理曾有过争议,但以下是目前较为统一的映射:
- 字母 A-Z:分别对应 65 ~ 90
- 数字 0-9:分别对应 48 ~ 57
| 按键 | keyCode | 按键 | keyCode | 按键 | keyCode |
|---|---|---|---|---|---|
| A | 65 | J | 74 | S | 83 |
| B | 66 | K | 75 | T | 84 |
| C | 67 | L | 76 | U | 85 |
| D | 68 | M | 77 | V | 86 |
| E | 69 | N | 78 | W | 87 |
| F | 70 | O | 79 | X | 88 |
| G | 71 | P | 80 | Y | 89 |
| H | 72 | Q | 81 | Z | 90 |
| I | 73 | R | 82 | 1 | 49 |
| ... | ... | ||||
| 0 | 48 | 9 | 57 | 其他特殊键 | 见下文控制键 |
第2步:小键盘与功能区
小键盘(Numpad)的键码从 96 开始,这与主键盘的数字行(48-57)区分开。功能键 F1-F12 则有固定的区间。
- 小键盘数字 (NumPad 0-9):96 ~ 105
- 小键盘运算符:
*(106),+(107),-(109),.(110),/(111) - 小键盘回车:Enter (108)
- 功能键:F1 (112) 至 F12 (123)
| 按键类型 | 具体按键 | keyCode |
|---|---|---|
| 小键盘 | NumPad 0 | 96 |
| NumPad 1 | 97 | |
| ... | ... | |
| NumPad 9 | 105 | |
| NumPad . | 110 | |
| NumPad / | 111 | |
| 功能键 | F1 | 112 |
| F2 | 113 | |
| ... | ... | |
| F10 | 121 | |
| F11 | 122 | |
| F12 | 123 |
第3步:控制键与导航键
这些键用于文本编辑、页面导航以及组合快捷键操作。理解它们有助于编写复杂的交互逻辑(如 Ctrl+C 复制)。
- 编辑键:BackSpace (8), Tab (9), Enter (13), Delete (46), Escape (27)
- 修饰键:Shift (16), Control (17), Alt (18), Caps Lock (20), Num Lock (144)
- 方向键:Left (37), Up (38), Right (39), Down (40)
- 分页键:Page Up (33), Page Down (34), Home (36), End (35)
许多标点符号和符号键(如 =, -, ;, ', [, ], ,, ., /)在按下 Shift 键后会产生不同的字符(例如 = 变成 +,; 变成 :)。在老式 keyCode 逻辑中,通常根据物理位置定义键码,这可能导致在处理中文输入法或未启用 Shift 时的行为不一致。
现代开发中的最佳实践
虽然上述表格可用于调试旧代码,但在新的前端项目中,建议采用以下方法监听键盘输入:
- 使用
e.key获取字符
e.key直接返回可打印字符(如'a','+'),忽略大小写锁状态外的物理布局差异,非常适合表单验证。 - 使用
e.code获取物理键
e.code返回基于物理位置的代码(如'KeyA','Space'),适合游戏开发或需要绑定固定硬件按键的场景。
// 现代推荐写法示例
document.addEventListener('keydown', function(e) {
// 判断是否为 Enter 键
if (e.code === 'Enter') {
console.log('用户按下了回车键');
}
// 判断是否按下了 's' 键
if (e.key === 's') {
console.log('用户按下了 s');
}
});
以上就是 keyCode 键码值表的详细内容。尽管该 API 已逐渐退出历史舞台,但掌握这些数值有助于排查遗留系统的 Bug。更多关于 JavaScript 键盘事件处理的资料,欢迎继续关注本站相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













