在 KeyboardEvent 中,应该使用哪个 属性 来确定按下了哪个键?

In a KeyboardEvent, which property should be used to determine which key is pressed?

例如按键事件将 return 以下

KeyboardEvent {
    charCode: 32,
    code: "Space",
    key: " ", // space character
    keyCode: 32,
    which: 32
}

其中哪些(如果有)deprecated/should 不用?代码对我来说很有意义,因为它是人类可读的。 Afaik,which 已弃用。

keyCode判断哪个key是pressed.except keyCode包括shiftKey,altKey,ctrlKey,metaKey检测特殊键。

我正在查看调试器并在 Angular 中追踪一个事件对象。您显然会使用 keyCode。我很确定文档也是这么说的。对这段对话的去向感兴趣。但是请注意,我使用 keyCode 并从所有键(输入 shift 等)中准确获取我需要的内容。

我想这是有道理的;你想要钥匙,使用钥匙代码。你想要这个角色,使用 charCode。您可能凭直觉认为它们是相同的,但看起来它们并非如此(或者至少,并非总是如此)。

为了添加所有细节,我绑定了 keyup 事件。它可能不是 angular 2 特定的,而只是共享环境等

我刚刚做了一些研究...根据 mdn (https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent) 我们应该使用 key "If available".

char 已弃用

charCode 已弃用

keyCode 已弃用

which 已弃用

code 未弃用,因此我假设如果 key 不可用,我们将使用它。