Quand est-ce un événement.cible.valeur pas une chaîne de caractères?
Je suis tombé sur value = String(event.target.value || "")
lorsqu'un textinputs keyup/événement keydown est déclenché.
Mais je ne suis pas sûr que quand le event.target.value
n'est pas une chaîne de caractères? Est-ce possible? Lorsque c'est autre chose, présentée comme un event.target.value
?
C'est soit défini ou une chaîne de caractères, et l'indéfini est fausse (false), la facturation OU, si la conversion de chaîne devrait pas être nécessaire, mais est probablement ajouté comme une sorte d'assurance.
OriginalL'auteur Akshat | 2013-02-06
Vous devez vous connecter pour publier un commentaire.
Si le
event.target
élément n'est pas un type d'entrée de l'élément, il n'aura pas devalue
de la propriété. Par exemple, si je clique sur undiv
puisevent.target
est un div qui n'ont pasvalue
.Emballage
event.target.value || ''
dansString()
n'est pas nécessaire qu'il en sera toujours de la valeur (ce qui est toujours une chaîne de caractères ouundefined
) ou la chaîne vide dans le cas d'une valeur deundefined
.Voir ce violon pour une démonstration.
OriginalL'auteur jbabey
Il peut aider à briser ce qui se passe ici, dans cette déclaration.
La clé, c'est que
event.target.value || ""
évalue d'abord, avant de Chaîne de caractères ().Sens, c'est de vérifier pour voir si
event.target.value
est null ou undefined. Si c'EST null ou undefined, il va utiliser la chaîne vide""
comme valeur par défaut. Le résultat de ce rapport est ensuite transmis à la Chaîne de caractères().OriginalL'auteur invalidsyntax