Код клавиши Space в JavaScript

Для Space, event.key — это " " (a space), event.code — Space, а устаревший keyCode — 32. Нажмите любую клавишу в Key Code Finder, чтобы увидеть её значения в реальном времени.

Обновлено

СвойствоЗначение
event.key" " (a space)
event.codeSpace
event.keyCode / which (устарело)32

Как определить Space

document.addEventListener('keydown', (event) => {
  if (event.key === " ") {
    // Space was pressed
  }
});

Используйте event.key, чтобы реагировать на смысл клавиши (он зависит от раскладки клавиатуры), и event.code для её физического положения, например WASD в играх. keyCode и which устарели: они всё ещё работают, но их значения различаются в разных браузерах и раскладках.

Как браузеры обрабатывают Space

Значение клавиши — это символ пробела, а не «Space». Space активирует кнопки и чекбоксы и прокручивает страницу, если больше никто её не обрабатывает. Вызовите preventDefault(), если ваш собственный элемент управления использует эту клавишу, иначе страница прокрутится.

В React

<input onKeyDown={(e) => { if (e.key === " ") { /* … */ } }} />

Часто задаваемые вопросы

Какой keyCode у Space?
32. Но он устарел: в новом коде используйте event.key (символ пробела) или event.code (Space).
В чём разница между event.key и event.code?
event.key — это символ или действие, которое клавиша даёт при текущей раскладке; event.code — физическое положение клавиши, одинаковое на любой раскладке.
Что использовать: keydown или keypress?
keydown. Событие keypress устарело и не срабатывает для клавиш, которые не вводят символы, например Escape или стрелки.