5-3 DOMとは何か|JavaScriptがHTMLを操作する仕組み

Web開発学習ロードマップ

JavaScriptを学び始めると、
ほぼ必ず次の疑問にぶつかります。

・なぜJavaScriptでHTMLを書き換えられるのか
・クリックすると表示が変わる仕組みが分からない
・どこまでがHTMLで、どこからがJavaScriptなのか曖昧

この疑問を解消する鍵が、
DOM(Document Object Model) です。

DOMを理解せずにJavaScriptを進めると、
コードは「おまじない」になってしまいます。

この記事では、
DOMの正体と役割
概念レベルでしっかり整理します。


この記事で学べること

・DOMとは何か
・HTMLとDOMの関係
・JavaScriptがHTMLを操作できる理由
・DOM理解が重要な理由


DOMとは何か

DOMとは、
HTMLをJavaScriptから操作できる形に変換した仕組みです。

ブラウザは、
HTMLファイルをそのまま扱っているわけではありません。

HTMLを読み込むと、
内部で DOMという構造 を作ります。

JavaScriptは、
このDOMを操作しています。


HTMLとDOMは同じではない

ここは非常に重要なポイントです。

・HTML:ファイルとして書かれたコード
・DOM:ブラウザが内部で作った構造

JavaScriptは、
HTMLファイルそのものを直接書き換えているのではありません。

DOMを通して画面を操作している
という点を必ず押さえてください。


DOMは「木構造」で管理されている

DOMは、
ツリー(木構造) で表現されます。

・html が一番上
・その下に head や body
・さらにその中に要素が入る

親子関係を持った構造になっているため、
「どの要素の中にあるか」
という考え方が重要になります。


なぜDOMを理解する必要があるのか

DOMを理解していないと、
次のような状態になります。

・なぜこの要素が取得できないのか分からない
・クリックイベントが効かない
・表示が変わる理由を説明できない

DOMを理解すると、

・どの要素を操作しているか
・なぜその結果になるか

論理的に説明できる ようになります。


JavaScriptはDOMをどう見ているか

JavaScriptから見ると、
DOMは オブジェクトの集合 です。

・要素
・属性
・テキスト

これらがすべて
JavaScriptで扱える対象になります。

つまり、
「HTMLを操作している」のではなく、
DOMというデータ構造を操作している
という理解が正確です。


画面が変わる仕組み

JavaScriptでDOMを操作すると、

・テキストが変わる
・要素が表示・非表示になる
・スタイルが変わる

といった変化が起きます。

ブラウザは、
DOMの変更を検知して
画面を再描画します。

これが、
「JavaScriptで画面が変わる」正体です。


DOM操作の基本的な流れ

DOM操作は、
基本的に次の流れで行われます。

  1. 操作したい要素を見つける

  2. その要素をJavaScriptで取得する

  3. 内容や状態を変更する

この流れは、
今後出てくるすべてのDOM操作で共通です。


「要素を取得する」が最初の壁

初心者が最初につまずくのが、
要素の取得 です。

・どの要素を対象にしているか
・classなのかidなのか
・複数あるのか1つだけか

これらはすべて、
DOM構造を意識しないと判断できません。


DOMとCSSの関係

DOMは、
CSSとも密接に関係しています。

・CSSはDOM要素に適用される
・JavaScriptはDOMを操作する
・結果として見た目が変わる

HTML / CSS / JavaScript は、
DOMを中心に連携している
と考えると理解しやすくなります。


DOMは一度理解すれば一生使う

DOMは、

・JavaScript基礎
・フレームワーク
・ライブラリ

すべての土台になる概念です。

React や Vue などのフレームワークも、
最終的には DOM 操作を抽象化しています。

ここで理解しておくと、
将来の学習が非常に楽になります。


初心者がよくある勘違い

よくある誤解を整理します。

・HTMLを直接書き換えていると思っている
・DOMとHTMLを同一視している
・構造を見ずに操作しようとする

DOMは、
「見えないけど確実に存在するもの」
として意識しましょう。


まとめ

DOMは、
JavaScriptがHTMLを操作するための仕組みです。

・HTMLはファイル
・DOMはブラウザ内の構造
・JavaScriptはDOMを操作する

この関係を理解できれば、
JavaScriptの動きは一気にクリアになります。

次は、
実際にDOMを取得して操作する方法
に進みます。


次に読むべき記事

▶ 次の記事
5-4 DOMの取得と操作の基本

▶ 関連記事
5-2 JavaScriptの基本文法

コメント