Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript 키보드 이벤트 완벽 정리: keydown, keypress, keyup의 차이와 활용법

키(key) 이벤트는 사용자가 키보드와 상호작용할 때마다 발생하는 이벤트입니다. JavaScript에서 주요 키 이벤트는 크게 세 가지로 나눌 수 있으며, 각각 keydown, keypress, keyup입니다.

주요 키 이벤트 종류

이벤트설명
onkeydown사용자가 키를 누르고 있는 순간 발생합니다. 키를 계속 누르고 있으면 반복해서 실행될 수 있습니다.
onkeypress사용자가 키를 눌렀을 때 발생합니다. 참고로 이 이벤트는 현재 표준에서 폐기(deprecated)되었으므로 새 프로젝트에서는 사용을 권장하지 않습니다.
onkeyup사용자가 키를 놓았을 때(누른 후 뗄 때) 발생합니다.

세 이벤트의 발생 순서는 일반적으로 keydown → keypress → keyup 순입니다. 아래는 JavaScript에서 키 이벤트를 처리하는 예제 코드입니다.

예제 코드

<!DOCTYPE html>
<html lang="en">
<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;
   }
   .result {
      font-size: 18px;
      color: blueviolet;
      font-weight: 500;
   }
</style>
</head>
<body>
<h1>Key-events in JavaScript</h1>
<div class="result"></div>
<h3>Press or release key to see the keyevent fired</h3>
<script>
   let resEle = document.querySelector(".result");
   document.body.addEventListener("keydown", () => {
      resEle.innerHTML = "keydown event is being fired <br>";
   });
   document.body.addEventListener("keyup", () => {
      resEle.innerHTML = "keyup event is being fired";
   });
   document.body.addEventListener("keypress", () => {
      resEle.innerHTML += "keypress event is being fired";
   });
</script>
</body>
</html>

실행 결과

위 코드를 실행하면 다음과 같은 화면을 볼 수 있습니다.

JavaScript 키보드 이벤트 완벽 정리: keydown, keypress, keyup의 차이와 활용법

키를 누르고 있는 동안 — keydown 이벤트가 지속적으로 발생합니다.

JavaScript 키보드 이벤트 완벽 정리: keydown, keypress, keyup의 차이와 활용법

키를 놓았을 때 — keyup 이벤트가 발생합니다.

JavaScript 키보드 이벤트 완벽 정리: keydown, keypress, keyup의 차이와 활용법

정리

keydown은 키 입력의 시작점을 감지할 때, keyup은 입력이 끝난 시점을 처리할 때 유용하게 사용됩니다. 특히 검색창 자동완성, 게임 조작키 처리, 단축키 구현 등 실시간으로 키보드 입력에 반응해야 하는 기능에서 이 세 가지 이벤트의 차이를 정확히 이해하고 활용하는 것이 중요합니다.