【JavaScript 3-2】よくあるつまずき|JavaScriptが動かない時の見直し方(初心者向け)
JavaScriptを学び始めると、
コード自体は短いのに、
**なぜか動かない**
という場面がよく出てきます。
たとえば、
– ボタンを押しても反応しない
– 文字が変わらない
– console.log が出ない
– classList.toggle が効かない
– 画面はあるのに JavaScript だけ動いていない
こういう時に大事なのは、
いきなり全部を疑うことではありません。
まずは、
**見る順番**
を決めておくことです。
今回は、
JavaScriptが動かない時に確認したいポイントを、
初心者向けに整理していきます。
- 「JavaScriptが動かない時は“読み込み → id → コンソール”の順で見ます」
-
最初はこの順番で見れば大丈夫です。
1. script.js は読み込まれているか
2. HTML側の id と JavaScript側の名前は合っているか
3. console.log は出ているか
4. コンソールにエラーは出ていないか
5. クリック処理の中に書くべき処理が入っているかJavaScriptが動かない時は、
コード全体を一気に直そうとすると混乱しやすいです。まずは、
「そもそも読み込まれているか」
「対象を見つけられているか」
「クリック処理まで届いているか」
を順番に確認します。
- 今回のゴール
- JavaScriptが動かない時の確認順
- script.js が読み込まれているか確認する
- console.log で読み込み確認をする
- id名のずれを確認する
- 変数名とid名の書き間違いに注意する
- addEventListener の中に
console.log を入れる - クリックで動かしたい処理は中に入れる
- コンソールの赤いエラーを確認する
- よくある書き忘れを確認する
- classList.toggle が効かない時の確認
- 動かない時の確認テンプレート
- よくあるつまずき(ここだけ確認)
- 今回のまとめ(ここだけ押さえればOK)
- 今日のゴール確認(できた判定)
- 次に読む(JavaScript 4-1へ)
- JavaScript 3-2 の一例zipについて
今回のゴール
- JavaScriptが動かない時に見る順番が分かる
- script.js の読み込みを確認できる
- id名のずれを見つけられる
- console.log で途中確認ができる
- エラーが出た時に慌てず確認できる
- 次のミニ制作へ進む準備ができる
JavaScriptが動かない時の確認順
| 確認すること | 見る場所 |
|---|---|
| JavaScriptが読み込まれているか | scriptタグ / console.log |
| id名が合っているか | HTMLのid / getElementById |
| ボタンが取得できているか | buttonのid |
| クリック処理が動いているか | addEventListener の中 |
| 表示を書き換えているか | textContent / classList |
JavaScriptが動かない時は、
原因が1つとは限りません。
ただ、初心者のうちは、
だいたい次のどこかで止まりやすいです。
– script.js が読み込まれていない
– id名がずれている
– ファイル名やフォルダ名が違う
– クリック処理の中に書けていない
– コンソールにエラーが出ている
まずはこの順番で見ていきます。
script.js が読み込まれているか確認する
JavaScriptがまったく動かない時は、
まず script.js が読み込まれているかを確認します。
今回のような構成の場合、
javascript-03-02-example/
├─ index.html
├─ css/
│ └─ style.css
└─ js/
└─ script.jsTeXindex.html から見た JavaScript の読み込みは、次の形です。
<script src="js/script.js"></script>HTMLconsole.log で読み込み確認をする
script.js が読み込まれているかを見る時は、
まず script.js の最初に console.log を書くと確認しやすいです。
console.log("script.js が読み込まれました。");
JavaScriptこれが開発者ツールのコンソールに表示されれば、
少なくとも script.js は読み込まれている可能性が高いです。
console.log は、ページ本文には表示されません。
ブラウザで右クリックして「検証」を開き、
「Console」または「コンソール」タブで確認します。

画面に出ないから失敗、ではありません。
console.log はコンソールに出る確認用メモです。
id名のずれを確認する
JavaScriptがHTMLの要素を見つける時は、
id名がとても大事です。
HTML側が、
<p id="message" class="message">
ここに表示される文字が変わります。
</p>HTMLなら、JavaScript側も、
const message = document.getElementById("message");
JavaScriptのように、同じ名前にします。
| HTML側 | JavaScript側 | 結果 |
|---|---|---|
| id=”message” | getElementById(“message”) | 合っている |
| id=”message” | getElementById(“messege”) | ずれている |
| id=”changeButton” | getElementById(“changeButton”) | 合っている |
| id=”changeButton” | getElementById(“button”) | ずれている |
変数名とid名の書き間違いに注意する
JavaScriptでは、
大文字と小文字が区別されます。
たとえば、
const changeButton = document.getElementById("changeButton");
JavaScriptと書いた場合、
あとで使う時も、
changeButton.addEventListener("click", function() {
console.log("クリックされました。");
});
JavaScriptのように同じ名前を使います。
`changeButton` と `changebutton` は別ものです。
| 書き方 | 同じ? |
|---|---|
| changeButton | 正しい名前 |
| changebutton | Bが小文字なので別名 |
| ChangeButton | 先頭が大文字なので別名 |
| changeButton | コピーして使えば安全 |
addEventListener の中に
console.log を入れる
ボタンを押しても反応しない時は、
クリック処理の中に console.log を入れてみます。
changeButton.addEventListener("click", function() {
console.log("ボタンが押されました。");
});
JavaScriptこれでボタンを押した時にコンソールへ表示されれば、
クリック処理までは動いています。
表示されない場合は、
– ボタンのid名が違う
– script.jsが読み込まれていない
– addEventListenerを書く対象が違う
あたりを見直します。
クリックで動かしたい処理は中に入れる
ボタンを押した時に動かしたい処理は、
addEventListener の中に書きます。
changeButton.addEventListener("click", function() {
message.textContent = "ボタンが押されました。";
});
JavaScript一方で、クリックと関係なくページを開いた時に動く処理は、
外に書かれていても動きます。
| 書く場所 | 動くタイミング |
|---|---|
| addEventListener の外 | ページを読み込んだ時 |
| addEventListener の中 | ボタンを押した時 |
| 関数の中 | 関数を呼び出した時 |

「押した時に変わってほしい」のに外に書いている、
というのはよくあるつまずきです。
コンソールの赤いエラーを確認する
JavaScriptに問題があると、
コンソールに赤いエラーが出ることがあります。
最初は全部読めなくて大丈夫です。
まずは、
– どのファイルで起きているか
– 何行目あたりか
– 何という名前が見つからないのか
を見るだけでも十分です。
| よく見るエラーの雰囲気 | 見直す場所 |
|---|---|
| 何かが not defined | 変数名・関数名の書き間違い |
| null と出る | id名のずれ、要素を見つけられていない |
| Unexpected token | カッコやカンマの書き忘れ |
| script.js が見つからない | scriptタグのパス |
よくある書き忘れを確認する
- ” ” の閉じ忘れがないか
- ( ) の閉じ忘れがないか
- { } の閉じ忘れがないか
- ; の有無で読みづらくなっていないか
- 配列やオブジェクトのカンマが抜けていないか
- 関数名の大文字・小文字がそろっているか
JavaScriptでは、
カッコや引用符の抜けで止まることがあります。
特に、
const message = "こんにちは";JavaScriptのような文字は、
” ” で囲む必要があります。
また、関数や if の中では、
{ } の範囲も見直します。
classList.toggle が効かない時の確認
前回のように classList.toggle を使う時は、
JavaScript側とCSS側のclass名が合っているか確認します。
JavaScript側が、
notice.classList.toggle("is-hidden");
JavaScriptなら、CSS側も、
.is-hidden {
display: none;
}
CSSになっている必要があります。
| JavaScript側 | CSS側 | 結果 |
|---|---|---|
| “is-hidden” | .is-hidden | 合っている |
| “isHidden” | .is-hidden | ずれている |
| “hidden” | .is-hidden | ずれている |
動かない時の確認テンプレート
JavaScriptが動かない時は、
下の順番で確認すると落ち着いて見直せます。
- scriptタグのパスは合っているか
- script.js の最初に console.log を入れて表示されるか
- HTML側の id と JavaScript側の getElementById が合っているか
- ボタンの id は合っているか
- addEventListener の中に console.log を入れて反応するか
- コンソールに赤いエラーが出ていないか
- カッコ・引用符・カンマの抜けがないか

止まった時は、上から順に見れば大丈夫です。
毎回この順番で見直すと、原因を探しやすくなります。
- script src のパスをわざと間違えて、console.log が出ないことを確認する
- id名を1文字変えて、動かなくなることを確認する
- addEventListener の中に console.log を入れて、クリック反応を見る
- classList.toggle のclass名を変えて、表示切り替えが止まるか見る
- 直したら動くところまで戻してみる
あえて少し壊してみると、
何が原因で動かなくなるのかが見えやすくなります。
ただし、壊したあとに戻せるように、
元のコードはコピーして残しておくと安心です。
よくあるつまずき(ここだけ確認)
- 「つまずき①:console.log が出ない」
-
まず script.js が読み込まれているか確認します。
index.html の最後に、
HTML<script src="js/script.js"></script>があるかを見ます。
さらに、script.js の最初に、
JavaScriptconsole.log("script.js が読み込まれました。");を書いて、コンソールに表示されるか確認します。
- 「つまずき②:ボタンを押しても反応しない」
-
ボタンのid名を確認します。
HTML側が、
HTML<button id="changeButton" type="button"> 表示を変える </button>なら、JavaScript側も、
JavaScriptconst changeButton = document.getElementById("changeButton");のように同じ名前にします。
- 「つまずき③:文字が書き換わらない」
-
まず、対象の要素を取得できているか確認します。
JavaScriptconsole.log(message);これが null になっている場合、
id名がずれている可能性があります。HTML側の id と JavaScript側の getElementById を見直します。
- 「つまずき④:表示・非表示が切り替わらない」
-
classList.toggle のclass名と、CSS側のclass名を確認します。
JavaScript側が、
JavaScriptnotice.classList.toggle("is-hidden");なら、CSS側も、
CSS.is-hidden { display: none; }になっているか確認します。
今回のまとめ(ここだけ押さえればOK)
- 動かない時は script.js の読み込みから確認する
- console.log は途中確認に使える
- id名のずれはかなり多いつまずきポイント
- addEventListener の中に処理があるか確認する
- コンソールの赤いエラーは原因を探すヒントになる
- class名のずれも表示切り替えでよく起きる
今日のゴール確認(できた判定)
ここまでできたらOKです。
- JavaScriptが動かない時に見る順番が分かった
- script.js の読み込み確認ができた
- id名のずれを確認できた
- console.log で途中確認ができた
- 次の JavaScript 4-1 に進む準備ができた
次に読む(JavaScript 4-1へ)
今回は、JavaScriptが動かない時の見直し方を整理しました。
次は、
ここまでの内容を使って、
ボタンで表示を切り替えるミニ制作に進みます。
DOM操作、クリック処理、classList を組み合わせて、
小さな動きのあるページを作っていきます。
JavaScript 3-2 の一例zipについて
この記事の内容は、JavaScript 3-2 の一例として zip ファイルを用意しました。
最初はそのまま開いて動きを確認し、
そのあとで id 名や script のパスを少し変えて、
どこで止まるかを見てみると理解しやすいです。
“正解を暗記するもの”ではなく、
「こういう形でも作れる」という確認用として使ってください。
javascript-03-02-example.zip
└─ javascript-03-02-example/
├─ index.html
├─ css/
│ └─ style.css
└─ js/
└─ script.js
PR:JavaScriptを進めるための参考(必要な方だけ)
JavaScriptは、エラー確認・DOM操作・イベント処理あたりで少しつまずきやすいので、必要な方だけ参考本の紹介を置いておきます。
まずは記事内のコードだけでも十分進めます。
※価格や在庫は変わるため、最終確認はリンク先でお願いします。

