JavaScript keyCode 常用键码值参考表

小石头
小石头
发布时间:2026-10-14 | 6人浏览过
原创

在早期的 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 时的行为不一致。

现代开发中的最佳实践

虽然上述表格可用于调试旧代码,但在新的前端项目中,建议采用以下方法监听键盘输入:

  1. 使用 e.key 获取字符
    e.key 直接返回可打印字符(如 'a', '+'),忽略大小写锁状态外的物理布局差异,非常适合表单验证。
  2. 使用 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 键盘事件处理的资料,欢迎继续关注本站相关文章!

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表