当发生textinput keyup/keydown事件时,我遇到了value = String(event.target.value || "")
。什么时候是一个event.target.value不是一个字符串?
但我不知道什么时候event.target.value
不是字符串?这可能吗?什么时候以event.target.value
的方式传递给别人?
当发生textinput keyup/keydown事件时,我遇到了value = String(event.target.value || "")
。什么时候是一个event.target.value不是一个字符串?
但我不知道什么时候event.target.value
不是字符串?这可能吗?什么时候以event.target.value
的方式传递给别人?
如果event.target
元素不是输入类型元素,它将不具有value
属性。例如,如果我点击div
,那么event.target
是一个没有value
的div。
在包装纸String()
event.target.value || ''
是没有必要的,因为它总是会任一值(这始终是一个字符串或undefined
),或在该值是undefined
的情况下的空字符串。
请参阅this fiddle进行演示。
这可能有助于打破此处发生的事情。 关键部分是event.target.value || ""
首先评估,在String()之前。
含义,它检查event.target.value
是否为空或未定义。如果它为空或未定义,它将使用空字符串""
作为默认值。然后将此语句的结果传递给String()。
它是未定义的或字符串,未定义的评估为false,调用OR,所以字符串转换不应该是必需的,但可能被添加为某种保险。 – adeneo