js事件中的keycode,在不同是事件中,數值不一樣

 document.addEventListener("keypress",function(e){
    var ikeyCode=e.keyCode;
    window.alert("press:"+ikeyCode);
});
document.addEventListener("keydown",function(e){
    var ikeyCode=e.keyCode;
    window.alert("down:"+ikeyCode);
});

在瀏覽器中執行上面的代碼,然後,任意按一個鍵,發現兩次alert的結果不一樣。
每次都相差32
是啥原因?

测试了是这样的,没错。keyCode 属性返回onkeypress事件触发的键的值的字符代码,或者 onkeydown 或 onkeyup 事件的键的键盘代码。
这两种代码类型的区别是:字符代码 - 表示 ASCII 字符的数字;键盘代码 - 表示键盘上真实键的数字。
例如:你按下w键,两种事件keypress是小写w,keydown是大写w,即大小写相差32.
这篇文章有详细介绍,可以细读:http://www.runoob.com/jsref/event-key-keycode.html

建议你先单独测试每一段代码,对同一个按键看看具体的键会不会不相同!

http://segmentfault.com/q/1010000000733450