Javascript event.target.value何时不是字符串?
当触发textinputs-keyup/keydown事件时,我遇到了accrossJavascript event.target.value何时不是字符串?,javascript,dom,event-handling,Javascript,Dom,Event Handling,当触发textinputs-keyup/keydown事件时,我遇到了accrossvalue=String(event.target.value | | | |“”) 但是我不确定event.target.value何时不是字符串?这可能吗?什么时候其他东西被传递为事件.target.value?它可能有助于分解该语句中发生的事情。 关键部分是event.target.value | | |“”首先求值,然后是String() 也就是说,它正在检查event.target.value是否为nu
value=String(event.target.value | | | |“”)
但是我不确定
event.target.value
何时不是字符串?这可能吗?什么时候其他东西被传递为事件.target.value
?它可能有助于分解该语句中发生的事情。
关键部分是event.target.value | | |“”
首先求值,然后是String()
也就是说,它正在检查
event.target.value
是否为null或未定义。如果它是空的或未定义的,它将使用空白字符串<代码>“”作为默认值。然后将此语句的结果传递给String()。如果event.target
元素不是输入类型元素,则它将没有value
属性。例如,如果单击一个div
,则event.target
是一个没有值的div
无需在String()
中包装event.target.value | |“
,因为在值未定义的情况下,它将始终是值(始终是字符串或未定义的
)或空字符串
请参阅以获取演示。它要么是未定义的,要么是字符串,未定义的计算结果为false,包含or,因此字符串转换应该不是必需的,但可能是作为某种保险添加的。