JavaScript キーコード一覧表 & キーイベントリファレンス

任意のキーを押すと event.key・event.code・keyCode・which などのプロパティを表示。標準的なキーボードイベントコードを網羅した検索可能な一覧表。

このツールについて

好きなキーを押せば、JavaScript のキーボードイベントが持つ全プロパティ が一瞬で見られます — event.keyevent.code、レガシーの keyCodewhich、4 つの修飾キー状態 (ctrlKeyshiftKeyaltKeymetaKey)、そしてキーの 物理的な位置(標準、左、右、テンキー)。上部のインタラクティブ領域は ネイティブの KeyboardEvent をそのまま受け取って表示するため、 表示される値はあなたが書く addEventListener("keydown", …) ハンドラに届く値とまったく同じです。

キーボード入力の扱いはフロント開発で意外とハマりどころです。レガシーの keyCodewhich プロパティは、かつてはキーを識別する事実上唯一の 方法でしたが、ブラウザやキーボードレイアウトによって挙動がばらつきます。 最新の event.key プロパティは "Enter""ArrowUp" のような 人間が読める文字列を返し、event.code はどの文字が入力されるかに関係なく 物理的なキー位置を識別します。このツールでは 3 つの表現を並べて表示するので、 用途に応じて使い分けられます。

下部の検索可能なリファレンステーブルには、すべての標準キーとその名前、 event.key の値、event.code の値、レガシーの keyCode 番号が一覧表示されています。カテゴリ(文字、数字、ファンクション キー、ナビゲーション、モディファイア、句読点、特殊キー)でフィルタリングでき、 検索バーで目的のキーに即座にジャンプできます。インタラクティブエリアでキーを押すと、 テーブル内の該当行がハイライトされ、素早く相互参照できます。アプリケーション固有の ショートカットをお探しの場合は、キーボードショートカットリファレンスで VS Code、Chrome DevToolsなどのショートカットを確認できます。文字コードの 検索には、ASCII & Unicodeテーブルで コードポイント、16進値、HTMLエンティティを参照できます。

すべての処理はブラウザ内で完結します。キー入力が記録・送信されたり、 サーバーに保存されたりすることはありません。機密性の高い修飾キー 組み合わせを含むショートカットのテストにも問題なく使えます。設定ファイルから 読み込んだユーザー定義のホットキー文字列をパターン照合したい場合は、 Regex Tester と組み合わせてマッチング用の正規表現を 組み立てると便利です。

使い方

  1. 上部の Press Any Key エリアをクリックしてキーボードフォーカスを与えてください。
  2. 任意のキーを押すと、event.keyevent.codekeyCodewhich、修飾キー状態、キー位置がその場で表示されます。
  3. 各値の横にある コピーボタン をクリックすればクリップボードにコピーできます。
  4. 下にスクロールして リファレンステーブル で利用可能なキーコード一覧を確認しましょう。
  5. 検索バー にキー名・イベント値・keyCode 番号・説明のいずれかを入力すると絞り込めます。
  6. カテゴリタブ(文字、数字、ファンクション、ナビゲーション、修飾キー、句読点、特殊)を切り替えれば、表示範囲をカテゴリ単位で限定できます。
  7. 最後に押したキーに対応する行は自動的にハイライトされ、表内での位置をひと目で確認できます。

よくある質問

JavaScript の event.key とは何ですか?

event.key は KeyboardEvent オブジェクトのプロパティで、現在のキーボードレイアウト・IME・修飾キーの状態を踏まえて、押されたキーを表す文字列を返します。印字可能な文字キーの場合は実際に入力される文字("a"、"A"、"!"、スペースなら " ")を返します。印字不可能なキーの場合は UI Events 仕様で定義された名前("Enter"、"Escape"、"ArrowUp"、"Tab"、"F5" など)を返します。event.key は非推奨となった event.keyCode・event.which の現代的な代替であり、ブラウザ・レイアウト・ロケールを越えて一貫した値を返すのが特長です。ショートカットや文字入力には event.key を使い、レイアウトに依存しない物理キー位置(WASD ゲームコントロールなど)が必要なときは event.code を使い分けてください。

event.keyとevent.codeの違いは何ですか?

event.keyはモディファイアやキーボードレイアウトを考慮した、キー押下に関連する文字や機能を返します(例:Shift+1を押すと"!"が返されます)。event.codeはレイアウトやモディファイアに関係なく、キーボード上の物理的なキーを識別します(例:"Digit1"は"1"を入力しても"!"を入力しても常に同じ物理キーです)。

event.keyCodeは非推奨ですか?

はい。event.keyCodeとevent.whichの両方がUI Events仕様で非推奨となっています。後方互換性のためにブラウザでサポートされ続けており、開発者が広く検索しています。新しいコードではevent.keyまたはevent.codeを使用してください。

一部のキーでイベントが発生しないのはなぜですか?

特定のキーやキーの組み合わせは、ページに到達する前にOSやブラウザによってインターセプトされます。例えば、macOSのCmd+QはブラウザをQuitし、Ctrl+Wはタブを閉じます。Print ScreenもOSによってキャプチャされる場合があります。これらのイベントはWebアプリケーションで確実に検出することはできません。

locationプロパティは何を意味しますか?

event.locationはキーボード上のキーの位置を示します。値0(Standard)は一般的なキー、1(Left)と2(Right)は左右のShiftなど重複するキーを区別し、3(Numpad)はテンキーのキーを識別します。

データは安全ですか?

もちろんです。このツールはブラウザのネイティブKeyboardEvent APIを使用してキーボードイベントをキャプチャし、event.key、event.code、event.keyCodeプロパティを読み取ります。すべてインメモリのクライアントサイド処理です。キー入力が記録されたり、サーバーに送信されたり、どこかに保存されることはありません。DevToolsのNetworkタブで確認できます。

keydown、keyup、keypressのどれを使うべきですか?

ほとんどのユースケースではkeydownを使用してください。モディファイアやファンクションキーを含むすべてのキーで発火します。keypressイベントは非推奨で、最新のブラウザでは印字不可能なキーに対しては発火しません。keyupはキーが離されたことを特に知る必要がある場合にのみ使用してください。

keyCodeの値がキーボードによって異なるのはなぜですか?

レガシーのkeyCode値はキーボードレイアウトやOSによって異なる場合があり、非推奨となった理由の一つです。例えば、セミコロンキーはUSレイアウトとヨーロッパレイアウトで異なるコードを報告する場合があります。この不整合が、W3Cが最新のアプリケーションでevent.key(生成される文字用)またはevent.code(物理キー用)の使用を推奨する理由です。

関連ツール