event.target.value何时不是字符串?

时间:2013-02-06 18:18:04

标签: javascript dom event-handling

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

但我不确定event.target.value何时不是字符串?这可能吗?什么时候以event.target.value传递其他东西?

2 个答案:

答案 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()。