現役システムエンジニアの備忘録

技術スキルや用語などの記録を残していきます

Timer(時間制御)

【JavaScript入門】カウントダウンタイマーの作り方|setIntervalで簡単に実装する方法

投稿日:

この記事で分かること

  • カウントダウンタイマーの基本的な仕組み
  • 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「超」入門

カウントダウンタイマーをより実践的に作りたい方に向いている入門書です。
setIntervalsetTimeout の仕組み、DOM操作、イベント処理などが体系的に学べます。

この本で解決できること:

  • タイマー処理の動作原理を理解できる
  • 実務レベルのコードが書けるようになる
  • 現代的な JavaScript の書き方が身につく

動画で理解を深めたい方へ(Udemy講座)

カウントダウンタイマーは「DOM操作」「イベント」「タイマー処理」が組み合わさった実践的なテーマです。
動画で実際の動きを見ながら学ぶと、コードの流れが直感的に理解できます。

初心者のためのJavaScript 完全入門

ボタン操作・イベント処理・タイマーの基礎など、カウントダウン作成に必要な知識を体系的に学べる人気講座です。

この講座で解決できること:

  • カウントダウンの仕組みを視覚的に理解できる
  • DOM操作とイベントの連携が分かる
  • 初心者がつまずきやすいポイントを丁寧に解説

初心者のためのJavaScript 完全入門(Udemy)

超JavaScript 完全ガイド 2026

カウントダウンをより高度に応用したい方に最適な講座です。
タイマー処理・アニメーション・非同期処理など、実務レベルの知識が身につきます。

この講座で解決できること:

  • タイマー処理の応用的な使い方を理解できる
  • 実務レベルのコード設計が身につく
  • 現代的な JavaScript の書き方をまとめて習得

超JavaScript 完全ガイド 2026(Udemy)

体系的に学びたい方へ(スクールという選択肢)

独学の限界を感じやすいポイント

  • カウントダウンのコード構造が理解しづらい
  • DOM操作やイベント処理で混乱しやすい
  • コードレビューを受ける機会がない
  • 学習の順番に自信が持てない

スクールでは、プロの講師が学習ロードマップを作成し、カウントダウンのような実践的なコードも丁寧にサポートしてくれます。

無料相談で得られるメリット

  • あなたのレベルに合わせた学習計画を作成
  • DOM操作やイベント処理の理解を深めるアドバイスがもらえる
  • 効率的な学習方法をプロが提案
  • エンジニア転職を視野に入れたキャリア相談も可能

JavaScript を効率よく学びたい方には、未経験からエンジニアを目指せる
DMM WEBCAMP の学習コースも選択肢のひとつです。

DMM WEBCAMP 学習コース(無料相談はこちら)



カウントダウンタイマーに関するよくある質問(FAQ)

Q1

開始ボタンを連打するとタイマーが速くなるのはなぜ?

A

setInterval が複数回実行されているためです。開始前に clearInterval でリセットすると防げます。

Q2

カウントダウンを途中でリセットするにはどうすればいい?

A

停止後に残り時間の変数(time)を初期値に戻せばリセットできます。

Q3

setInterval ではなく setTimeout で作ることはできますか?

A

はい。setTimeout を再帰的に呼び出す方法でもカウントダウンを実装できます。

Q4

カウントダウンがズレることはありますか?

A

処理が重いとズレることがあります。正確にしたい場合は setTimeout 方式が向いています。



まとめ

  • setInterval を使えば簡単にカウントダウンが作れる
  • 開始・停止ボタンを組み合わせると実用的になる
  • 連打対策には clearInterval が必須
  • 正確なカウントダウンには setTimeout 方式も有効



関連記事

【JavaScript入門】タイマーのズレ問題とは?setIntervalが遅れる理由と正確なタイマーの作り方

2026/04/15   -Timer(時間制御)

この記事で分かること JavaScriptのタイマーがズレる理由 setInterval で遅延が起きる仕組み 正確なタイマーを作る方法(再帰setTimeout) 実際のコード例でズレを確認する ズ …

【JavaScript入門】setIntervalとclearIntervalの使い方|一定間隔で処理を繰り返すタイマーの基本

2019/07/03   -Timer(時間制御)

この記事で分かること setInterval の基本的な仕組み clearInterval でタイマーを停止する方法 タイマーIDの役割と使い方 カウントアップの実用サンプル 繰り返し処理を扱う際の注 …

【JavaScript入門】setTimeoutとclearTimeoutの使い方|指定時間後に処理を実行するタイマーの基本

2019/07/02   -Timer(時間制御)

この記事で分かること setTimeoutの基本的な仕組み clearTimeoutでタイマーを解除する方法 タイマーIDの役割と使い方 ボタンで開始・停止する実用サンプル 遅延処理を扱う際の注意点 …

【JavaScript入門】setTimeoutとsetIntervalの違いを徹底解説|初心者が迷わない使い分けガイド

2026/04/14   -Timer(時間制御)

この記事で分かること setTimeoutとsetIntervalの基本的な違い それぞれのメソッドが向いている用途 1回だけ実行・繰り返し実行の仕組み 実際のコード例で動作を理解する 初心者が迷いや …

このブログは Xserver 上の WordPress で運用しています。
表示速度が速く、安定しているのでブログ初心者にもおすすめです。

レンタルサーバー エックスサーバー

-Timer(時間制御)

執筆者: