2015-09-08 45 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