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

Для Shift event.key — это Shift, event.code — это ShiftLeft / ShiftRight, а устаревший keyCode — это 16. Нажмите любую клавишу в Key Code Finder, чтобы увидеть её значения в реальном времени.

Обновлено

СвойствоЗначение
event.keyShift
event.codeShiftLeft / ShiftRight
event.keyCode / which (устарело)16

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

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

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

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

Используйте event.shiftKey, чтобы проверить, зажата ли Shift во время другой клавиши или клика, — не отслеживайте нажатия Shift самостоятельно. Shift меняет event.key («a» становится «A»), но не event.code.

В React

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

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

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