コンテンツにスキップ

JavaScript/clearInterval

出典: フリー教科書『ウィキブックス(Wikibooks)』

clearInterval()は、JavaScriptにおいて、setInterval()で設定された繰り返し実行されるインターバルを停止するためのメソッドです。不要になったインターバルを停止することで、パフォーマンスの改善や予期せぬ動作の防止に役立ちます。

概要

[編集]

clearInterval()globalThisオブジェクトのメソッドで、グローバルスコープで直接使用できます。

構文
clearInterval(intervalId); 
  • intervalId: キャンセルするインターバルのID。setInterval()が返す値です。

解説

[編集]

setInterval()はインターバルIDを返します。このIDは、インターバルを停止するためにclearInterval()に渡されます。clearInterval()が呼び出されると、指定されたインターバルは停止し、それ以降、関連付けられた関数やコードは実行されなくなります。

例1
インターバルの停止
let count = 0; const intervalId = setInterval(() => {  console.log("カウント: " + count);  count++;  if (count > 5) {  clearInterval(intervalId); // カウントが5を超えたらインターバルを停止  console.log("インターバルが停止されました");  } }, 1000); // 1秒ごとに実行 
このコードでは、1秒ごとにカウントが表示され、カウントが5を超えるとclearInterval(intervalId)が呼び出され、インターバルが停止します。
例2
ボタンクリックでインターバルを停止
HTMLと組み合わせて、ボタンクリックなどのイベントでインターバルを停止する例です。
<!DOCTYPE '''html'''> <html> <head> <title>clearIntervalの例</title> <script>  document.addEventListener('DOMContentLoaded', function() {  let intervalId = null;  document.getElementById("startBtn").addEventListener("click", () => {  if (!intervalId) { // インターバルがまだ開始されていない場合のみ開始  intervalId = setInterval(() => {  console.log("インターバル実行中...");  }, 1000);  }  });  document.getElementById("stopBtn").addEventListener("click", () => {  clearInterval(intervalId); // インターバルを停止  intervalId = null; // intervalIdをnullにリセット(オプション)  console.log("インターバルが停止されました");  });  });  </script> </head> <body> <button id="startBtn">開始</button> <button id="stopBtn">停止</button> </body> </html> 
この例では、「開始」ボタンをクリックするとインターバルが開始され、「停止」ボタンをクリックするとインターバルが停止します。intervalId = null;は必須ではありませんが、インターバルが停止したことを明示的に示すために、intervalIdnullにリセットすることが推奨されます。
例3
存在しないintervalIdを指定した場合
存在しないintervalIdclearInterval()に渡しても、エラーは発生しません。何も起こりません。これは、clearTimeout()と同様の挙動です。
clearInterval(9999); // 存在しないインターバルIDを指定してもエラーにならない console.log("特に何も起こりません"); 

注意点

[編集]
  • clearInterval()は、インターバルがまだ実行されている場合にのみ有効です。インターバルが既に停止している場合、clearInterval()を呼び出しても何も起こりません。
  • setTimeout()で設定されたタイマーをキャンセルするには、clearTimeout()を使用します。

まとめ

[編集]

clearInterval()は、setInterval()と組み合わせて使用することで、JavaScriptで柔軟な時間制御を実現するための重要なツールです。不要になったインターバルを適切に停止することで、メモリリークを防ぎ、パフォーマンスを維持することができます。

関連項目

[編集]