# Понимание событий клавиатуры в JavaScript
Когда пользователь нажимает клавишу, браузер срабатывает три события:keydown, keypress и keyup. Каждое раскрывает свойства с информацией о нажатой клавише, но не все эквивалентны или рекомендуются.# Свойства событий клавиатуры
event.code — Физическая клавиша
Возвращает идентификатор физической позиции клавиши на клавиатуре, используя номенклатуру QWERTY. Например, клавиша "A" на клавиатуре AZERTY возвращает KeyQ. Идеально для управления игрой, где важна позиция, а не символ.
event.key — Сгенерированный символ
Возвращает значение символа, сгенерированное в соответствии с языком и активными модификаторами. Нажатие Shift+A возвращает "A"; без Shift возвращает "a". Для специальных клавиш возвращает названия, такие как "Enter", "Escape", "ArrowUp".
# Когда использовать каждое свойство
event.code для управления игрой (WASD независимо от языка) и event.key для обнаружения определённых символов или семантических сочетаний клавиш, таких как Ctrl+C. event.which и event.keyCode официально устаревшие согласно стандарту W3C. Хотя современные браузеры продолжают их поддерживать для совместимости, их не следует использовать в новом коде.