clearInterval 使い方【JavaScriptタイマー停止】setTimeoutとの違いも解説
説明: JavaScriptでタイマー処理を行う際、setInterval
関数で定期的に処理を実行できますが、それを停止する場合はclearInterval
関数を使用します。
この記事では、clearInterval
関数の使い方、setTimeout
関数との違い、具体的な使用例などを詳しく解説します。
clearIntervalの基本的な使い方
clearInterval
関数は、setInterval
関数によって設定されたタイマーを停止するために使用します。タイマーを停止するには、setInterval
関数の戻り値として取得したタイマーIDをclearInterval
関数に渡します。
clearInterval()
関数の構文
clearInterval(timerId);
timerId
は、setInterval
関数によって返されるタイマーIDです。
setInterval
で取得したタイマーIDの必要性
setInterval
関数は、タイマーをセットするたびに固有のIDを発行します。このIDを用いることで、どのタイマーを停止するかを明示的に指定することができます。
タイマー停止の仕組みと注意点
clearInterval
関数は、指定されたタイマーIDに紐付けられた処理の実行を停止します。タイマーは即座に停止されるため、現在実行中の処理が完了するまで待つことはありません。
clearIntervalとsetTimeoutの違い
JavaScriptには、タイマー処理を行うための関数がいくつか用意されていますが、setInterval
とsetTimeout
は混同しやすいものです。それぞれの違いを明確にしておきましょう。
関数 | 説明 |
---|---|
setInterval() |
指定した間隔で処理を繰り返し実行します。 |
setTimeout() |
指定した時間経過後に処理を一度だけ実行します。 |
setInterval
: 定期的に処理を実行
setInterval
関数は、指定した間隔で処理を繰り返し実行するために使用します。例えば、1秒ごとに時計を更新する場合などに使用します。
setTimeout
: 一定時間後に処理を一度だけ実行
setTimeout
関数は、指定した時間経過後に処理を一度だけ実行するために使用します。例えば、5秒後にメッセージを表示する場合などに使用します。
それぞれの用途と使い分け
- 定期的な処理を実行したい場合は
setInterval
を使用します。 - 一定時間後に一度だけ処理を実行したい場合は
setTimeout
を使用します。
clearIntervalの実践的な使用例
カウントダウンタイマーの実装
let count = 10;
let timerId = setInterval(function() {
count--;
document.getElementById("timer").innerHTML = count;
if (count === 0) {
clearInterval(timerId);
document.getElementById("timer").innerHTML = "時間切れ!";
}
}, 1000);
アニメーションの実装と停止
let position = 0;
let timerId = setInterval(function() {
position += 10;
document.getElementById("animation").style.left = position + "px";
if (position > 200) {
clearInterval(timerId);
}
}, 50);
ユーザー操作によるタイマーの一時停止/再開
let count = 0;
let timerId;
function startTimer() {
timerId = setInterval(function() {
count++;
document.getElementById("timer").innerHTML = count;
}, 1000);
}
function stopTimer() {
clearInterval(timerId);
}
document.getElementById("start").addEventListener("click", startTimer);
document.getElementById("stop").addEventListener("click", stopTimer);
まとめ
clearInterval
関数は、setInterval
関数で設定したタイマーを停止するために使用します。タイマーIDを指定することで、特定のタイマーを停止することができます。setTimeout
関数との違いを理解し、それぞれの用途に合わせて使い分けましょう。
QA
Q1: clearInterval
関数を使わずにタイマーを停止することはできますか?
A1: いいえ、setInterval
関数で設定したタイマーを停止するには、必ずclearInterval
関数を使用する必要があります。
Q2: 複数のタイマーを同時に停止することはできますか?
A2: はい、それぞれのタイマーIDに対してclearInterval
関数を実行することで、複数のタイマーを同時に停止することができます。
Q3: clearInterval
関数を実行した後、同じタイマーIDで再びタイマーをセットすることはできますか?
A3: はい、clearInterval
関数を実行した後でも、同じタイマーIDで再びsetInterval
関数を実行することで、タイマーを再セットすることができます。
その他の参考記事:jquery setinterval