2015-09-08 46 views
2

错误代码为什么代码:charCodeAt生成逗号

','.charCodeAt(0); 

产生44即使则charCode为逗号188(均由this tablekeyup处理越来越event.keyCode时)。

+4

'charCodeAt()'返回字符的ascii值。 '44'是逗号的ASCII码。有关更多信息,请参见http://www.asciitable.com/。 – Tro

+4

字符和键是两个不同的东西。这就是为什么他们不一定具有相同的代码。 –

+0

我理解的混乱,尤其是当有像http://stackoverflow.com/questions/1430989/how-to-convert-char-to-keycode这样的问题,其中接受的答案混淆了这两个术语,其他答案包含过时的信息。理想情况下这些应该清理干净。 – Jan

回答

2

字符和键是不同的东西。

charCodeAt返回字符的数字Unicode值。
keyCode来自KeyboardEvent表示键盘上的键。

由于字符和键之间不存在1:1映射,因此它们不一定使用相同的值。

+0

如果您绝对*有*将键码映射到字符码,您可以通过数组来实现。你将不得不自己写这个实现,但它不是内置的。 – Jan