2013-02-06 173 views
8

当发生textinput keyup/keydown事件时,我遇到了value = String(event.target.value || "")什么时候是一个event.target.value不是一个字符串?

但我不知道什么时候event.target.value不是字符串?这可能吗?什么时候以event.target.value的方式传递给别人?

+0

它是未定义的或字符串,未定义的评估为false,调用OR,所以字符串转换不应该是必需的,但可能被添加为某种保险。 – adeneo

回答

10

如果event.target元素不是输入类型元素,它将不具有value属性。例如,如果我点击div,那么event.target是一个没有value的div。

在包装纸String()event.target.value || ''是没有必要的,因为它总是会任一值(这始终是一个字符串或undefined),或在该值是undefined的情况下的空字符串。

请参阅this fiddle进行演示。

0

这可能有助于打破此处发生的事情。 关键部分是event.target.value || ""首先评估,在String()之前。

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

相关问题