2013-02-06 94 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()。

相關問題