Javascript 键盘事件:按键放弃不一致行为

Javascript 键盘事件:按键放弃不一致行为,javascript,Javascript,我对Javascript中的键盘按键事件有问题(在chrome上检查) 如下所示,4个部分在四个不同的文件中打褶,并附在一起。它工作得很好,但有一个奇怪的行为 查看代码,请将注意力集中在标记的行上: MAIN.JS document.addEventListener("DOMContentLoaded", function() { document.onkeyup = function(event){ EVENT_KEYBOARD(event); } } 活动:

我对Javascript中的键盘按键事件有问题(在chrome上检查)

如下所示,4个部分在四个不同的文件中打褶,并附在一起。它工作得很好,但有一个奇怪的行为

查看代码,请将注意力集中在标记的行上:

MAIN.JS

document.addEventListener("DOMContentLoaded", function() {
    document.onkeyup = function(event){
        EVENT_KEYBOARD(event);
    }
}
活动:

function EVENT_KEYBOARD(event) {
    LOG_DEBUG("key pressed." + event.key + " code"+event.keyCode);
    main_controller.event_keyboard_click(event);
}
控制器:

this.event_keyboard_click = function(event) {
    keyCode = event.keyCode;
    key = event.key;
    if(keyCode == 44){ myCanvas.abond_for_a_while(3000);}// PRINT SCREEN
    else if(keyCode == 27){ myConsolas.cursorEscape();} // ESCAPE
    ...
    else if(key == "Delete"){myConsolas.cursorDelete();}
    else {myConsolas.workForMe(event);}
}
CONSOLAS.JS:

this.workForMe = function(event) {
    key=event.key.toUpperCase();
// THIS LINE BELOW:
    if((key.length==1&&key>='0'&&key<='Z') || ",*-_ ;\'".includes(event.key)){
        ...
    }
}
this.workForMe=函数(事件){
key=event.key.toUpperCase();
//这一行如下:

如果((key.length==1&&key>='0'&&key='0'&&key对于
),它返回false)
,因为您要比较的范围不包括该字符,并且您没有在额外字符列表中检查它(这也包括一些冗余字符)。您的下界为
'0'
,即
48
,上界为
Z
,即
90
。该范围包括以下字符:
0123456789:;?@abcdefghijklmnopqrstuvxyz

的字符代码为
41

let chars=''
让start='0'。charCodeAt(0)
让end='Z'.charCodeAt(0)
log(`Starting at:${start}`)
log(`Ending at:${end}`)
for(让我=开始;我
if((key.length==1&&key>='0'&&key<='Z') || ",*-_ ;\'".includes(event.key))