JavaScriptが動かないとき、多くの人は「コードが間違っているのでは?」と考えがちです。
しかし実際には、コード以外の要因で止まっているケースが非常に多いです。
ここでは、現場で本当に使えるチェックリストを整理します。
1. コンソールエラーを確認しているか
まず最初にやるべきはこれです。
ブラウザのデベロッパーツールを開き、Consoleタブを確認してください。
エラーが出ているなら、そこに原因が書かれています。
ここを見ずに悩むのは、地図を見ずに目的地を探しているのと同じです。
2. JavaScriptファイルは正しく読み込まれているか
意外と多いのが「そもそも読み込まれていない」問題です。
確認ポイントは以下です。
・scriptタグのパスが正しいか
・ファイル名のスペルミスがないか
・拡張子(.js)が正しいか
・Networkタブでステータスが200になっているか
ここで404になっていたら、どれだけコードを書いても動きません。
3. scriptタグの位置は適切か
JavaScriptはHTMLの読み込み順に影響を受けます。
よくあるミスは、HTMLがまだ読み込まれていない段階でJSを実行してしまうことです。
対処法は2つです。
・bodyタグの一番下にscriptを書く
・またはdefer属性をつける
これをやっていないと、要素が取得できずにエラーになります。
4. セレクタは正しいか
document.querySelectorなどで要素を取得している場合、
セレクタが間違っているとnullになります。
例えば
・クラスなのに「.」をつけていない
・IDなのに「#」をつけていない
・クラス名のスペルミス
この状態で処理を続けると、確実にエラーになります。
5. イベントは正しく設定されているか
クリックや入力などのイベントが動かない場合はここを疑います。
・addEventListenerのスペルミス
・イベント名(clickなど)のミス
・対象要素がnullになっている
特に「要素が取得できていないのにイベントを付けている」ケースは非常に多いです。
6. キャッシュの影響を疑っているか
修正したのに反映されない場合、キャッシュが原因の可能性があります。
対処法
・スーパーリロード(Ctrl + Shift + R)
・キャッシュ削除
これをやらずに悩むのは時間の無駄です。
7. 文法エラーがないか
基本ですが、意外と見落とします。
・カンマの抜け
・セミコロンのミス
・{} や () の閉じ忘れ
1つの文法エラーで、後続のコードがすべて止まります。
8. 非同期処理を理解しているか
API通信やsetTimeoutなどを使っている場合、
「順番通りに動かない」ことがあります。
これはバグではなく仕様です。
・async / await を使う
・Promiseの流れを理解する
ここを理解していないと、「動かない」と勘違いし続けます。
9. 外部ライブラリは正しく読み込まれているか
CDNなどを使っている場合
・読み込み順が正しいか
・CDNが切れていないか
ライブラリが読み込まれていなければ、その機能は当然使えません。
10. スコープの問題を見ているか
変数が使えない原因はスコープの可能性があります。
・let / const の使い方
・関数の外と中の違い
「定義したのに使えない」は、ほぼここが原因です。
まとめ
JavaScriptが動かないときにやるべきことはシンプルです。
コンソールを見る
読み込みを疑う
要素取得を疑う
実行タイミングを疑う
この順番で潰せば、大抵の問題は解決します。
最後に
動かない原因の多くは「難しい問題」ではありません。
単純な見落としです。
だからこそ重要なのは、闇雲にコードを書くことではなく、
原因を切り分ける習慣です。
ここを鍛えない限り、いつまで経っても「なんとなく動かしている状態」から抜け出せません。