Capturar a tecla pressionada no teclado do usuário usando as propriedades do Javascript charCode / keyCode / which pode parecer um pouco complexo, e realmente é, por isso é preciso entender como funciona esses eventos. A Captura desses tipos de eventos pode ser útil para validar algum de tipo de entrada em formulários ou em algum outro tipo de evento no browser. Para lidar com esse tipo de evento a biblioteca jQuery pode ser uma boa opção, pois alguns browser armazenam esses eventos de forma diferente, principalmente IE. Para capturar o keyCode do usuário de forma mais precisa o evento keypress() é a melhor opção.

Diferenças entre keyCode e charCode

keyCode (Keyboard Codes): Representa o número da tecla que o usuário pressiona no teclado.
charCode: (Character Codes): Representa um número de cada caractere na tabela Unicode.

Para entender e ter sempre a mão o número de cada keyCode representado no teclado criei uma tabela para ter como referência, e para testar os eventos keydown(), keypress() e keyup() basta digitar a tecla nos campos de texto a seguir.

Javascript KeyCode tabela de referencia.


Referência:

http://unixpapa.com/js/key.html
http://en.wikipedia.org/wiki/UTF-8