当一个textinputs keyup / keydown事件被触发时,我遇到了value = String(event.target.value || "")
。
但我不确定event.target.value
何时不是字符串?这可能吗?什么时候以event.target.value
传递其他东西?
答案 0 :(得分:11)
如果event.target
元素不是输入类型元素,则它不具有value
属性。例如,如果我点击div
,则event.target
是一个没有value
的div。
在event.target.value || ''
中包装String()
不是必需的,因为它始终是值(始终为字符串或undefined
)或值为{{的情况下的空字符串1}}。
请参阅this fiddle进行演示。
答案 1 :(得分:0)
这可能有助于打破该声明中发生的事情。
关键部分是event.target.value || ""
首先在String()之前进行求值。
意思是,它正在检查event.target.value
是空还是未定义。如果它为null或未定义,则它将使用空字符串""
作为默认值。然后将此语句的结果传递给String()。