textinputs keyup/keydownイベントが発生すると、私はvalue = String(event.target.value || "")
になりました。event.target.valueはいつ文字列ではありませんか?
しかし、event.target.value
が文字列ではないとわかりません。これは可能ですか?他の何かがいつevent.target.value
として渡されますか?
textinputs keyup/keydownイベントが発生すると、私はvalue = String(event.target.value || "")
になりました。event.target.valueはいつ文字列ではありませんか?
しかし、event.target.value
が文字列ではないとわかりません。これは可能ですか?他の何かがいつevent.target.value
として渡されますか?
event.target
要素が入力型要素でない場合は、value
プロパティはありません。たとえば、div
をクリックした場合、event.target
はvalue
を持たないdivです。それは常に(常に文字列またはundefined
である)のいずれかの値または値がundefined
である場合には空の文字列になるようString()
でevent.target.value || ''
ラッピング
は不要です。
デモンストレーションについては、this fiddleを参照してください。
この文章では何が起きているのか分かりやすく説明しています。 重要な部分は、event.target.value || ""
が最初に評価されてからString()が評価されることです。
意味、event.target.value
がヌルか未定義かどうかを確認しています。 nullまたは未定義の場合は、空白の文字列""
をデフォルト値として使用します。このステートメントの結果は、String()に渡されます。
これは未定義または文字列のいずれかであり、未定義はORを呼び出すfalseと評価されるため、文字列変換は必要ではありませんが、おそらく何らかの保険として追加されます。 – adeneo