當發生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