자판 키 120개의 code와 keyCode
KeyboardEvent에서 나오는 값들입니다. code는 자판의 자리라 언어를 타지 않고, key는 그 순간 찍히는 글자라 자판마다 다릅니다.
code와 key의 차이
code는 자판에서의 자리라 한글이든 프랑스어 자판이든 같은 값입니다. key는 그 순간 찍히는 글자라 바뀝니다 — 같은 자리를 눌러도 a·A·ㅁ가 됩니다. "이 자리를 눌렀나"를 보려면 code, "무엇이 입력됐나"를 보려면 key입니다.
keyCode는 표준에서 빠진 값입니다. 새로 쓰는 코드에는 code나 key를 쓰고, 여기 실은 값은 옛 코드를 읽을 때 쓰세요.
글자26
자리는 KeyA로 고정입니다. 한글 자판에서 ㅁ이 찍혀도 code는 KeyA입니다.
숫자10
숫자 줄입니다. 숫자판의 같은 숫자와는 keyCode가 다릅니다.
기호12
keyCode가 브라우저마다 갈리는 자리가 여기 있습니다.
숫자판16
location이 3이라 숫자 줄과 구별됩니다.
F키20
F1은 112, F2는 113 … 차례로 이어집니다.
이동8
글자를 찍지 않고 커서만 옮깁니다.
편집6
지우고 넣고 줄을 바꾸는 키들입니다.
수정 키8
혼자서는 아무 일도 하지 않고 다른 키에 얹힙니다. 좌우가 같은 keyCode를 씁니다.
잠금3
한 번 누르면 상태가 바뀌어 머무릅니다.
시스템4
창과 화면을 다루는 키들입니다.
입력기7
입력기를 바꾸는 키 — 한/영, 한자, 일본어 변환이 여기 듭니다.
읽는 방법
- code는 자리, key는 찍히는 글자입니다. 단축키를 만들 때는 code로 견주세요.
- keyCode는 폐기됐습니다. 옛 코드를 읽을 때만 쓰세요.
- 왼쪽과 오른쪽 Shift는 keyCode가 같고 location으로 갈립니다.
- 숫자 줄의 1과 숫자판의 1은 다른 키입니다 — 49와 97입니다.
자주 묻는 질문
Q. code와 key 중 무엇을 써야 하나요?
단축키처럼 자리를 잡아야 하면 code, 무엇이 입력됐는지 알아야 하면 key입니다. code는 자판이 바뀌어도 그대로입니다.
Q. keyCode는 왜 쓰지 말라고 하나요?
표준에서 빠졌고 브라우저마다 값이 갈립니다. 기호 키에서 특히 그렇습니다.
Q. Enter의 키 코드는 몇 번인가요?
keyCode는 13이고 code는 Enter입니다. 숫자판의 Enter는 code가 NumpadEnter이지만 keyCode는 똑같이 13입니다.
Q. 왼쪽 Shift와 오른쪽 Shift를 어떻게 구별하나요?
keyCode는 둘 다 16이라 구별되지 않습니다. code(ShiftLeft·ShiftRight)나 location(1·2)을 보세요.
Q. 한글 자판에서도 code가 같나요?
같습니다. ㅁ이 찍히는 자리를 눌러도 code는 KeyA입니다 — 자리를 가리키는 값이기 때문입니다.