JavaScript/DOM/Lesson 13
DOM — *HTML を JS で操作する*
30分·theory
このチャプター
1/2
DOM — *HTML を JS で操作する*
🎯 このレッスンを読んだら
このレッスンを読み終えると、以下の3つを自信を持ってできるようになります。
- ▸✅ var · let · const の違い + hoisting の挙動
- ▸✅ 7つの型 + typeof の落とし穴 (typeof null === 'object')
- ▸✅ スクリプト読み込み (defer · async · module) の違い
学習目標をチェックリストとして手元に置き、すべて答えられるようになったらレッスンを閉じてください。
DOM とは何か
核心の一文
DOM (Document Object Model) = ブラウザが HTML を JavaScript オブジェクトのツリー として表現したもの。このツリーを 操作 してページを動的に変更します。
ツリー構造
各タグが ノード (Node)。JS からこれらのノードを 選択・変更・追加・削除 できます。
要素の選択
querySelector が 最も柔軟 — CSS セレクタをそのまま使えます。
内容の変更
⚠️ innerHTML の落とし穴 — ユーザー入力をそのまま入れると XSS 攻撃 のリスクがあります:
要素の追加・削除
イベント処理
フォーム処理
モダン開発 — DOM の直接操作は稀
React・Vue・Svelte などのフレームワークが DOM 操作を抽象化 します。開発者は 状態 (state) を変えるだけで、フレームワークが DOM を自動的に 更新します。
それでも DOM API を 知っておくべき 理由:
- ▸ライブラリの作成・シンプルなページ
- ▸デバッグ (ブラウザの開発者ツール)
- ▸フレームワーク内部の理解
まとめ
- ▸DOM = HTML の JS オブジェクト表現
- ▸
querySelectorで要素を選択 - ▸
textContent・classList・addEventListenerで操作 - ▸モダン開発では React などが抽象化 するが、基礎知識は必須
⚡ 実際に試してみよう — DOM API (mock document)
ブラウザのサンドボックス制約により、実際の document の代わりに *mock オブジェクト* を使って DOM 操作の流れを実演します。`querySelector`・`textContent`・`classList` がどのように動作するかをコンソール出力で確認できます。
✏️ JS 코드
📟 コンソール出力
▶ 実行ボタンを押してください
⚠️ ブラウザのサンドボックスで実行 — console.log()のみ対応、alert/fetchは不可
🤖 AI にこう聞いてみよう
このレッスンの概念を理解すれば、AI に 具体的に 指示できます。漠然とした「直して」ではなく、語彙を持ったリクエスト — それがトークン節約の出発点です。
- ▸「この querySelector のループを NodeList で受け取って forEach でまとめてください」
- ▸「このイベントハンドラをイベント委任 (event delegation) に書き換えてください」
- ▸「このコードのメモリリーク (イベントリスナーの解放) の可能性を確認してください」
なぜトークンを減らせるのか
概念を知らないと、AI の回答を受け取っても 「それは何ですか?」 と再度聞かなければなりません。その「再質問」がトークンを消費します。概念を一度身につければ、会話が一度で 完結します。