【问题标题】:When is an event.target.value not a string?什么时候 event.target.value 不是字符串?
【发布时间】:2022-03-31 16:11:26
【问题描述】:

当触发 textinputs keyup/keydown 事件时,我遇到了 value = String(event.target.value || "")

但我不确定event.target.value 何时不是字符串?这可能吗? event.target.value 是什么时候冒充的?

【问题讨论】:

  • 它要么是未定义的,要么是字符串,并且未定义的评估结果为 false,调用 OR,因此字符串转换不应该是必要的,但可能是作为某种保险添加的。

标签: javascript dom event-handling


【解决方案1】:

如果event.target 元素不是输入类型元素,它就没有value 属性。例如,如果我单击div,则event.target 是一个没有value 的div。

没有必要将event.target.value || '' 包装在String() 中,因为它始终是值(始终是字符串或undefined)或在值为undefined 的情况下为空字符串。

请参阅this fiddle 进行演示。

【讨论】:

    【解决方案2】:

    在该声明中分解这里发生的事情可能会有所帮助。 关键部分是 event.target.value || "" 首先计算,在 String() 之前。

    意思是检查event.target.value 是否为空或未定义。如果它为空或未定义,它将使用空白字符串"" 作为默认值。然后将该语句的结果传递给 String()。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-20
      • 1970-01-01
      • 2011-06-11
      • 2011-03-27
      • 2010-10-10
      • 2012-06-07
      • 1970-01-01
      • 2023-01-06
      相关资源
      最近更新 更多