この記事で分かること
- カウントダウンタイマーの基本的な仕組み
setIntervalを使ったカウントダウンの実装方法- 開始・停止ボタンの作り方
- 実際に動くHTML+JavaScriptのサンプルコード
- カウントダウンでよくあるエラーと対処法
JavaScriptでは、setInterval() を使うことで簡単にカウントダウンタイマーを作ることができます。
指定した秒数から1秒ずつ減らしていき、0になったら終了する仕組みです。
この記事では、初心者でも理解しやすいように、カウントダウンタイマーの作り方を丁寧に解説します。
開始ボタン・停止ボタン付きの実用的なサンプルも紹介します。
カウントダウンタイマーの基本構造
カウントダウンタイマーは、次の3つの要素で構成されます。
- 残り時間を管理する変数
- 1秒ごとに処理を実行する
setInterval() - タイマーを停止する
clearInterval()
基本のカウントダウン処理
let time = 10; // 10秒
let timer;
timer = setInterval(() => {
console.log(time);
time--;
if (time < 0) {
clearInterval(timer);
console.log("終了!");
}
}, 1000);
このコードでは、10秒から1秒ずつ減らし、0になったらタイマーを停止します。
開始・停止ボタン付きのカウントダウンタイマー
次は、実際にHTMLと組み合わせて、開始ボタンと停止ボタンを使ったカウントダウンタイマーを作ってみましょう。
JavaScriptコード
let time = 10;
let timer;
function startCountdown() {
timer = setInterval(() => {
document.getElementById("count").textContent = time;
time--;
if (time < 0) {
clearInterval(timer);
alert("カウントダウン終了!");
}
}, 1000);
}
function stopCountdown() {
clearInterval(timer);
}
HTMLコード
<div>残り時間:<span id="count">10</span> 秒</div>
<button onclick="startCountdown()">開始</button>
<button onclick="stopCountdown()">停止</button>
開始ボタンを押すとカウントダウンが始まり、停止ボタンで途中停止できます。
よくあるエラーと対処法
- 開始ボタンを連打するとタイマーが複数動く → 開始前に
clearInterval()を呼ぶ - 0になっても止まらない →
if (time < 0)の条件を確認 - 表示が更新されない →
document.getElementById()のIDを確認
JavaScript 初心者におすすめの学習書籍
書籍で学ぶのが向いている人
- カウントダウンなどの実用的なコードを体系的に学びたい
- ネット記事だけだと理解が断片的に感じる
- 基礎文法から順序立てて理解したい
カウントダウンタイマーは、JavaScript の関数・イベント・タイマー処理の理解が必要なテーマです。
書籍ではこれらを体系的に学べるため、コードの流れを深く理解できます。
いちばんやさしい JavaScript の教本
図解が多く、手を動かしながら学べる初心者向けの入門書です。
カウントダウンを作るために必要な「関数」「イベント」「DOM操作」が丁寧に解説されています。
この本で解決できること:
- カウントダウンの基礎となる文法を理解できる
- ボタン操作やイベント処理の流れが分かる
- 実際に動くサンプルで理解が深まる
確かな力が身につく JavaScript「超」入門
カウントダウンタイマーをより実践的に作りたい方に向いている入門書です。
setInterval や setTimeout の仕組み、DOM操作、イベント処理などが体系的に学べます。
この本で解決できること:
- タイマー処理の動作原理を理解できる
- 実務レベルのコードが書けるようになる
- 現代的な JavaScript の書き方が身につく
動画で理解を深めたい方へ(Udemy講座)
カウントダウンタイマーは「DOM操作」「イベント」「タイマー処理」が組み合わさった実践的なテーマです。
動画で実際の動きを見ながら学ぶと、コードの流れが直感的に理解できます。
初心者のためのJavaScript 完全入門
ボタン操作・イベント処理・タイマーの基礎など、カウントダウン作成に必要な知識を体系的に学べる人気講座です。
この講座で解決できること:
- カウントダウンの仕組みを視覚的に理解できる
- DOM操作とイベントの連携が分かる
- 初心者がつまずきやすいポイントを丁寧に解説
→ 初心者のためのJavaScript 完全入門(Udemy)
超JavaScript 完全ガイド 2026
カウントダウンをより高度に応用したい方に最適な講座です。
タイマー処理・アニメーション・非同期処理など、実務レベルの知識が身につきます。
この講座で解決できること:
- タイマー処理の応用的な使い方を理解できる
- 実務レベルのコード設計が身につく
- 現代的な JavaScript の書き方をまとめて習得
体系的に学びたい方へ(スクールという選択肢)
独学の限界を感じやすいポイント
- カウントダウンのコード構造が理解しづらい
- DOM操作やイベント処理で混乱しやすい
- コードレビューを受ける機会がない
- 学習の順番に自信が持てない
スクールでは、プロの講師が学習ロードマップを作成し、カウントダウンのような実践的なコードも丁寧にサポートしてくれます。
無料相談で得られるメリット
- あなたのレベルに合わせた学習計画を作成
- DOM操作やイベント処理の理解を深めるアドバイスがもらえる
- 効率的な学習方法をプロが提案
- エンジニア転職を視野に入れたキャリア相談も可能
JavaScript を効率よく学びたい方には、未経験からエンジニアを目指せる
DMM WEBCAMP の学習コースも選択肢のひとつです。
カウントダウンタイマーに関するよくある質問(FAQ)
開始ボタンを連打するとタイマーが速くなるのはなぜ?
setInterval が複数回実行されているためです。開始前に clearInterval でリセットすると防げます。
カウントダウンを途中でリセットするにはどうすればいい?
停止後に残り時間の変数(time)を初期値に戻せばリセットできます。
setInterval ではなく setTimeout で作ることはできますか?
はい。setTimeout を再帰的に呼び出す方法でもカウントダウンを実装できます。
カウントダウンがズレることはありますか?
処理が重いとズレることがあります。正確にしたい場合は setTimeout 方式が向いています。
まとめ
setIntervalを使えば簡単にカウントダウンが作れる- 開始・停止ボタンを組み合わせると実用的になる
- 連打対策には
clearIntervalが必須 - 正確なカウントダウンには
setTimeout方式も有効