キー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なので数字の段と区別できます。
ファンクション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はどう見分けますか?
keyCodeはどちらも16で見分けられません。code(ShiftLeft・ShiftRight)かlocation(1・2)を見てください。
Q. ハングル配列でもcodeは同じですか?
同じです。ㅁが打たれる場所を押してもcodeはKeyAです——場所を指す値だからです。