在我的Reaction/Javascript应用程序中,我听到的是KeyboardEvents.关于如何获得按下的键值,key property的文档非常清楚:

其值按如下方式确定:

  • 如果按下的键具有打印表示形式,则返回值是包含键的可打印表示形式的非空Unicode字符串.
  • 如果按下的键是空格键,则返回值为单个空格
  • 如果按下的键是控制键或特殊字符,则返回值为pre-defined key values中的一个.

我想测试按下的键是否有打印表示或为空格.即它不是预定义的键值之一.

我找不到hasPrintedRepresentation英镑的房产.在返回true之前,我是否应该编写自己的hasPrintedRepresentation()来测试并排除这400个左右的预定义键值中的每一个?我找不到一家已经从事这项繁重工作的图书馆.我错过了什么吗?谢谢!

推荐答案

您可以使用KeyboardEvent对象的key属性来获取按下的键值.

您可以在JavaScript中使用Object.hasOwn()方法来判断KeyboardEvent对象的key属性是否具有打印表示形式或为空格.如果指定的对象将指定的属性作为其自己的属性,则Object.hasOwn()方法返回true.如果该属性是继承的或不存在,则该方法返回false.

下面是一个如何使用Object.hasOwn()方法来测试按下的键是否具有打印表示或空格的示例:

function hasPrintedRepresentation(event) {
  const key = event.key;
  return Object.hasOwn(key, 'length') && key.length === 1 || key === ' ';
}

Javascript相关问答推荐

如何在不分配整个数组的情况下修改包含数组的行为主体?

react 路由加载程序行为

Next.js(react)使用moment或不使用日期和时间格式

仅针对RTK查询中的未经授权的错误取消maxRetries

无法读取未定义错误的属性路径名''

如何将react—flanet map添加到remixjs应用程序

JQuery Click事件不适用于动态创建的按钮

本地库中的chartjs-4.4.2和chartjs-plugin-注解

如何将zoom 变换应用到我的d3力有向图?

如何在Java脚本中对数据进行签名,并在PHP中验证签名?

使用CEPRESS截取时,cy.Wait()在等待5000ms的第一个路由请求时超时

JavaScript&;Reaction-如何避免在不使用字典/对象的情况下出现地狱?

MongoDB通过数字或字符串过滤列表

设置复选框根据选中状态输入选中值

需要RTK-在ReactJS中查询多个组件的Mutations 数据

将延迟加载的模块转换为Eager 加载的模块

如何使pdf.js上的文本呈现为可选?

如何在Java脚本中添加一个可以在另一个面板中垂直调整大小的面板?

正在发出错误的URL请求

元素类型无效:应为字符串(对于内置组件)或类/函数(对于复合组件),但GET:Object.在Reaction项目中