JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptのsetTimeout()とsetInterval()の違いとは?使い分けのポイントを解説

setTimeout()とsetInterval()の基本的な違い

JavaScriptには、処理を遅延させて実行するためのタイマー関数としてsetTimeout()setInterval()が用意されています。どちらも指定した関数を遅れて実行する点は共通していますが、実行回数に大きな違いがあります。

setTimeout()とは:指定時間後に1回だけ実行

setTimeout(function, duration)は、現在時刻からdurationミリ秒が経過した後に、指定した関数を1回だけ呼び出す関数です。一度実行されたら、それで終了します。

以下の例では、2000ミリ秒(2秒)待機した後、コールバック関数としてalert('Hello')が一度だけ実行されます。

setTimeout(function() { alert('Hello'); }, 2000);

setInterval()とは:指定間隔で繰り返し実行

setInterval(function, duration)は、durationミリ秒ごとに指定した関数を繰り返し呼び出す関数です。停止処理を行わない限り、無制限に実行が続きます。

以下の例では、2000ミリ秒ごとにalert('Hello')が表示されます。1回きりではなく、解除するまで継続的に実行される点がsetTimeout()との決定的な違いです。

setInterval(function() { alert('Hello'); }, 2000);

違いを一覧で比較

関数実行タイミング実行回数解除方法
setTimeout()指定時間の経過後1回のみclearTimeout()
setInterval()指定間隔ごと無制限(解除するまで)clearInterval()

タイマーを解除する方法

setTimeout()で設定したタイマーはclearTimeout()で、setInterval()はclearInterval()で解除できます。タイマー関数は呼び出し時にIDを返すので、それを変数に保存して利用します。

const timerId = setInterval(function() {
  console.log('繰り返し実行中');
}, 2000);

// タイマーを停止したいとき
clearInterval(timerId);

使い分けのポイント

遅延処理やアニメーションの開始など、一度だけ実行すればよい処理にはsetTimeout()を、時計表示や定期的なデータ更新など、一定間隔で繰り返したい処理にはsetInterval()を使用するのが基本です。用途に応じて適切に使い分けることで、意図した動作を効率的に実装できます。

  1. JavaScriptにおける関数とメソッドの違いとは?わかりやすく解説

    JavaScriptにおいて、関数とメソッドは本質的には同じものです。両者の違いは、メソッドがオブジェクトのプロパティとして定義された関数であるという点にあります。つまり、独立して定義されたものを「関数」、オブジェクトに紐づけられたものを「メソッド」と呼びます。 JavaScriptの関数の基本形 まず、一般的な関数の定義方法を見てみましょう。 function functionname(param1, param2){ // 処理内容 } JavaScriptのメソッドの例 メソッドは、オブジェクトに関連付けられた関数です。次の例では、employeeオブジェクトの中にdetails

  2. JavaとJavaScriptの違いとは?歴史・技術・使い分けを徹底解説

    ウェブ開発者のジェレミー・キースは2009年、「JavaとJavaScriptの関係は、ハムとハムスターの関係のようなものだ」と語りました。この比喩がどれほど正確かは議論の余地がありますが、その本質は的確です。共通する言語的ルーツを持つにもかかわらず、JavaとJavaScriptはまったく異なる2つのプログラミング言語なのです。年月とともに両者の重なりも多少増えましたが、今なおJavaScriptはウェブサイトにインタラクティブ性をもたらすフロントエンド言語の主流であり続け、Javaはサーバーサイドやアプリケーション開発で人気を保っています。開発者を採用したい方、プログラミングを学びたい方