2013-02-06 36 views
8

Bir textinput keyup/keydown olayı tetiklendiğinde, value = String(event.target.value || "") ile karşılaştım.Bir event.target.value ne zaman bir string değil?

Ama event.target.value bir dize olmadığından emin değilim? Mümkün mü? event.target.value olarak başka bir şey ne zaman geçti?

+0

Ya tanımlanmamış ya da bir dizedir ve tanımlanmamış, OR'yi çağırırken false olarak değerlendirilir, böylece dize dönüşümü gerekli olmamalıdır, ancak muhtemelen bir çeşit sigorta olarak eklenir. – adeneo

cevap

10

event.target öğesi bir giriş türü öğesi değilse, value özelliğine sahip olmaz. Örneğin, div öğesini tıklatırsam, event.targetvalue olmayan bir div'dir. bu her zaman veya bu değer undefined olduğu durumda boş bir dize (her bir dize veya undefined olduğu) ya da bu değeri olacak şekilde String() içinde event.target.value || '' tamamlayan

gerekli değildir.

Bir gösteri için bkz. this fiddle.

0

Bu ifadede burada olup bitenleri yıkmaya yardımcı olabilir. Anahtar bölüm, event.target.value || ""'un String() öğesinden önce önce değerlendirdiği bölümdür.

event.target.value öğesinin null veya undefined olup olmadığını denetleme amaçlıdır. Boş veya tanımlanmamışsa, boş değer dizesini "" varsayılan değer olarak kullanır. Bu ifadenin sonucu daha sonra String() öğesine iletilir.

İlgili konular