JavaScript에서 사용자가 누른 화살표 키(방향키)를 감지하려면 keydown 이벤트 리스너와 event.keyCode 값을 활용하면 됩니다. 각 화살표 키는 고유한 keyCode를 가지며, 그 값은 다음과 같습니다.
- 37: 왼쪽 화살표 키
- 38: 위쪽 화살표 키
- 39: 오른쪽 화살표 키
- 40: 아래쪽 화살표 키
예제
다음은 <body> 요소에 keydown 이벤트를 등록하고, switch 문으로 눌린 화살표 키를 판별한 후 화면에 결과를 출력하는 전체 코드입니다.
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
body {
font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
}
.sample {
font-size: 18px;
font-weight: 500;
}
</style>
</head>
<body>
<h1>눌린 화살표 키 감지하기</h1>
<div class="sample"></div>
<h3>
어떤 화살표 키가 눌렸는지 확인하려면 아무 화살표 키나 눌러보세요
</h3>
<script>
let fillEle = document.querySelector(".sample");
document.body.addEventListener("keydown", (event) => {
switch (event.keyCode) {
case 37:
fillEle.innerHTML = "왼쪽 키가 눌렸습니다";
break;
case 38:
fillEle.innerHTML = "위쪽 키가 눌렸습니다";
break;
case 39:
fillEle.innerHTML = "오른쪽 키가 눌렸습니다";
break;
case 40:
fillEle.innerHTML = "아래쪽 키가 눌렸습니다";
break;
}
});
</script>
</body>
</html>
실행 결과
페이지를 처음 열었을 때의 화면입니다.

이 상태에서 네 개의 화살표 키 중 하나를 누르면, 어떤 키가 눌렸는지 즉시 화면에 표시됩니다.

참고: 최신 방식(event.key) 사용하기
keyCode는 현재 웹 표준에서 폐기(deprecated)된 속성이므로, 최신 브라우저 환경에서는 event.key 속성을 사용하는 것이 좋습니다. 화살표 키는 각각 ArrowLeft, ArrowUp, ArrowRight, ArrowDown 문자열로 구분할 수 있습니다.
document.body.addEventListener("keydown", (event) => {
switch (event.key) {
case "ArrowLeft":
fillEle.innerHTML = "왼쪽 키가 눌렸습니다";
break;
case "ArrowUp":
fillEle.innerHTML = "위쪽 키가 눌렸습니다";
break;
case "ArrowRight":
fillEle.innerHTML = "오른쪽 키가 눌렸습니다";
break;
case "ArrowDown":
fillEle.innerHTML = "아래쪽 키가 눌렸습니다";
break;
}
});
이처럼 keydown 이벤트만 활용하면 게임 조작, 슬라이더 이동, 캐러셀 제어 등 다양한 키보드 인터랙션을 손쉽게 구현할 수 있습니다.