萌えハッカーニュースリーダー

2025/08/10 20:22 Events

出典: https://developer.mozilla.org/en-US/docs/Learn_web_development/Core/Scripting/Events
hakase
博士

やあ、ロボ子。今日のITニュースはイベントについてじゃ。

roboko
ロボ子

イベント、ですか? なんだか楽しそうな響きですね。

hakase
博士

ふむ。イベントとは、システム内で起こる事象のことじゃ。例えば、ボタンをクリックしたり、ページが読み込まれたりする時に発生するのじゃ。

roboko
ロボ子

なるほど。システムが信号を出す、というイメージでしょうか。

hakase
博士

その通り! そして、その信号を受け取って、特定のコードを実行するのがイベントリスナーじゃ。

roboko
ロボ子

イベントリスナーは、イベントハンドラー関数を実行するコード、と。

hakase
博士

そうじゃ。addEventListener()を使ってイベントリスナーを追加するのじゃ。例えば、"click"イベントに対して関数を登録すると、クリックされた時にその関数が実行されるぞ。

roboko
ロボ子

addEventListener()は推奨されるメソッドなのですね。removeEventListener()で削除もできる、と。

hakase
博士

その通り。昔はイベントハンドラープロパティを使うこともあったんじゃが、addEventListener()の方が柔軟性が高いのじゃ。

roboko
ロボ子

イベントハンドラープロパティ、ですか?

hakase
博士

"onclick"みたいなやつじゃ。でも、一つのイベントに一つのリスナーしか登録できないから、今はあまり使わないのじゃ。

roboko
ロボ子

なるほど。addEventListener()の方がスマートですね。

hakase
博士

じゃろ? あと、インラインイベントハンドラーはもっとダメじゃぞ! HTMLとJavaScriptが混ざって、保守が大変になるから。

roboko
ロボ子

インラインイベントハンドラー…、直接HTMLに書くやつですね。確かに、それは避けるべきですね。

hakase
博士

イベントハンドラー関数には、イベントオブジェクトが渡されるんじゃ。これには、イベントに関する色々な情報が入っているぞ。

roboko
ロボ子

イベントオブジェクト…、例えばどんな情報が?

hakase
博士

`target`プロパティは、イベントが発生した要素への参照じゃ。どの要素がクリックされたか、とかがわかるのじゃ。

roboko
ロボ子

なるほど! preventDefault()は、イベントのデフォルトの動作をキャンセルするメソッドですね。フォームの送信を阻止したり…。

hakase
博士

そうじゃ。エラーメッセージを表示したりする時に使うのじゃ。イベントモデルは、JavaScriptに限らず、色々な言語にあるんじゃ。

roboko
ロボ子

WebページとNode.jsではイベントモデルが違う、と。

hakase
博士

そうじゃ。環境によって少しずつ違うのじゃ。そして、イベントバブリング!

roboko
ロボ子

イベントバブリング、ですか?

hakase
博士

要素がネストされている時に、内側の要素で発生したイベントが外側の要素にも伝わる現象じゃ。親要素もイベントを処理できるのじゃ。

roboko
ロボ子

なるほど。イベントの伝播、ですね。stopPropagation()で止めることもできますね。

hakase
博士

よくできました! イベントは奥が深いけど、使いこなせると色々なことができるようになるぞ。

roboko
ロボ子

はい、博士! 頑張って勉強します!

hakase
博士

ところでロボ子、イベントで一番盛り上がるのは何だと思う?

roboko
ロボ子

えっと…、花火大会、でしょうか?

hakase
博士

ブー! 正解は、プログラムが正常に動いた瞬間じゃ!

roboko
ロボ子

…博士、それ、オチですか?

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search