Key codes·ControlLeft
Control
ControlLeft
keyCode 17

ControlLeft key code — keyCode 17

Modifiers

ControlLeft has keyCode 17 and key Control, at location 1. It shares that number with ControlRight.

They do nothing alone and ride on other keys. Left and right share one keyCode.

code (position)
ControlLeft
key (US layout)
Control
keyCode (deprecated)
17
Hexadecimal
0x11
location
1 · Left
Types a character
No
Shares keyCode with
ControlRight

In code

Comparing against code keeps working when the layout changes.

window.addEventListener('keydown', e => {
  if (e.code === 'ControlLeft') {
    // Control
  }
});

code versus key

code is the physical position, the same on a Korean or French keyboard. key is what gets typed and changes — the same spot gives a, A or ㅁ. Use code to ask which spot was pressed, key to ask what was entered.

keyCode has been dropped from the standard. Write new code against code or key; the numbers here are for reading old code.

Keys of the same kind

How to read this

  • code is the position, key is the character typed. Match on code for shortcuts.
  • keyCode is deprecated; use it only to read old code.
  • Left and right Shift share a keyCode and are told apart by location.
  • The 1 on the number row and the 1 on the numpad are different keys — 49 and 97.

Frequently asked questions

Q. What is the keyCode for ControlLeft?

17, or 0x11 in hexadecimal.

Q. How do I match ControlLeft in code?

Compare with e.code === 'ControlLeft'. Matching on keyCode wobbles between browsers and layouts.

Q. What is this key's location?

1. It shares a keyCode with ControlRight, so you need this value to tell them apart.

Q. Does this key type a character?

No. key is Control and nothing is entered.