JavaScriptのDOM組み込みオブジェクトを徹底解説!初心者が知っておくべき基本と活用法

こんにちは。ゆうせいです。

今回は、JavaScriptを使ってWebページを動かす上で超重要なDOM(Document Object Model)に関する組み込みオブジェクトについて、初心者の方にもわかりやすく解説していきます!

JavaScriptの組み込みオブジェクトにはいろいろありますが、DOM関連のものは「Webページに触るための道具」です。


DOMってなに?

まず、「DOMって何?」というところからはじめましょう。

DOM(Document Object Model)は、Webページをオブジェクトとして扱う仕組みのことです。

たとえば、次のようなHTMLがあったとします。

<body>
  <h1 id="title">Hello</h1>
</body>

これをJavaScriptで操作するには、「document」というオブジェクトを使って、まるで「木の枝をたどるように」要素にアクセスします。


代表的なDOM組み込みオブジェクト一覧

オブジェクト名役割・用途
windowブラウザのウィンドウ全体を表す
documentWebページ(HTMLドキュメント)全体を表す
ElementHTMLの要素(タグ)を表す
NodeDOMツリーのノードを表す(テキストなども含む)
NodeListノードの一覧(配列っぽいけど配列ではない)
HTMLCollectionHTML要素のコレクション(これも配列ではない)
Eventイベントオブジェクト(クリック・キーボードなど)
HTMLElement特定のHTML要素型の親クラス(例:HTMLDivElement

それぞれを詳しく解説!

1. windowオブジェクト

JavaScriptの最上位オブジェクトで、ブラウザのタブそのものを指します。

console.log(window.innerWidth); // ウィンドウの幅

ちなみに、alert()setTimeout() なども window.alert() の省略形です!


2. documentオブジェクト

window.document は、Webページの内容そのもの(HTMLドキュメント)を指します。

document.getElementById("title").textContent = "こんにちは!";

ページ内の要素にアクセスする入り口です!


3. Elementオブジェクト

これは、HTMLのタグ1つ1つを表すオブジェクトです。

let el = document.querySelector("h1");
el.style.color = "red";

ElementHTMLElement の親クラスにあたります。


4. Nodeオブジェクト

DOMの構造は「ノード(節)」として表現されます。

  • <div>要素ノード
  • "こんにちは"テキストノード

というように、すべての要素や文字列が「ノード」として扱われます。

let node = document.getElementById("title").childNodes[0];

NodeElement よりも広い概念です。


5. NodeListとHTMLCollectionの違い

どちらも複数の要素を格納した「配列っぽいもの」ですが、違いに注意!

特徴NodeListHTMLCollection
作られる関数例querySelectorAll()getElementsByTagName()など
更新される?いいえ(静的)はい(動的)
forEach使える?使える(モダンブラウザ)使えない

6. Eventオブジェクト

クリックやキーボード入力など、イベントの情報を保持するオブジェクトです。

document.addEventListener("click", function(event) {
  console.log(event.target); // クリックされた要素
});

event という引数は、イベントに関するすべての情報を含んでいます。


7. HTMLElementとそのサブクラスたち

HTMLElement は、すべてのHTML要素の共通の型であり、さらに具体的な要素ごとに次のようなクラスがあります。

クラス名対応するHTML要素
HTMLDivElement<div>
HTMLInputElement<input>
HTMLButtonElement<button>
let btn = document.querySelector("button");
console.log(btn instanceof HTMLButtonElement); // true


DOMの階層構造:図でイメージしよう

window
 └─ document
     └─ <html>
         └─ <body>
             ├─ <h1>
             │   └─ TextNode ("Hello")
             └─ <p>
                 └─ TextNode ("Welcome")

このように、ツリー構造(木構造)になっているのがDOMの特徴です。


よくある操作例:実践で使える!

要素を取得する

document.getElementById("title")
document.querySelector(".item")

要素を作る・追加する

let p = document.createElement("p");
p.textContent = "新しい段落";
document.body.appendChild(p);

クラスやスタイルを変更する

el.classList.add("active");
el.style.backgroundColor = "blue";


今後の学習の指針

DOMの操作に慣れてきたら、以下のテーマに進んでみましょう。

  • イベント伝播とイベント委譲(Event Delegation)
  • DOMの操作パフォーマンス最適化
  • Virtual DOMの考え方(Reactなどで登場)
  • セキュリティとDOM操作(XSSなど)

DOMは「JavaScriptがWebページとつながる接点」です。ここをマスターすることで、インタラクティブでリッチなページ作成が可能になります。

気になる技術や具体的な例があれば、またどんどん聞いてくださいね!

セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。