という方向けのご紹介です。
執筆者
![](https://paj117117.com/wp-content/uploads/2021/03/54674-300x225.jpg)
・javascriptが大好きな男
setTimeoutとsetInterval
『何秒ごとに』『何秒経過したら』という処理を予約したいことがあると思います。
そんな時に使えるのがこの2つのメソッド
・setInterval():指定した一定時間ごとに関数を実行する
処理が一回だけなのか、インターバルになっているかの違いです。
これに対応して、処理の予約を取消するメソッドもあります。
・clearInterval():setIntervalの呼び出しをキャンセル
構文自体はほとんど同じですが、使うタイミングもあわせて紹介致します。
順番に見ていきましょう。
setTimeoutとclearTimeout
まずは一回だけ処理するメソッドの基本構文から
・時間:1000=1秒
・関数の引数:ない場合は省略してOK
これで『時間が経過したら起動したい関数を発動する』という処理になります。
続いてこれを取消する場合なのですが、
timerIdとは
「戻り値ってなに?」という方はこちらをどうぞ
【JavaScript】わかりやすい「戻り値」と使い方
これはタイマーを識別するためのIDのようなもので、clearTimeoutで関数実行をキャンセルする際に使われます。
そのため、setTimeoutは、変数に代入して使用されることがほとんどです。
その変数名が大体「timerId」とされます。以下のように感じです。
// タイマー識別子
let timerId = setTimeout(………)
setIntervalとclearInterval
次は時間ごとに処理するメソッドの基本構文
前置きすると「setTimeout/clearTimeout」と構文は全く同じです。
・時間:1000=1秒
・関数の引数:ない場合は省略してOK
これで『時間が経過する毎に起動したい関数を発動する』という処理になります。
続いてこれを取消する場合なのですが、clearTimeoutと同様にtimerIdを使います。
同じ構文なので分かりやすいですね。
時間ごとの処理は便利なのですが一点だけ注意事項がございます。
setIntervalを使う時の注意
時間ごとに処理をする都合上、基本的に無限に処理を続けるという欠点があります。
clearIntervalで処理を止めない限り続けるので、ブラウザが重くなったりする原因になりますので、気を付けましょう。
もし、「止めた後にもう一回setIntervalを開始したいなぁ」というはこちらをご確認ください。
【JavaScript】途中で停止、再開を自由に設定する方法【setInterval】
「途中で停止させて再開させる」専用のメソッドはありませんが、できるだけ簡単に再現できるサンプルコードを載せております。
是非ご活用ください。
まとめ
最後に、setinterval周りのパターンをまとめておきます。
・clearTimeout:setTimeoutを含んだ変数を代入すると処理を止める
・setInterval:時間ごとに処理する
・clearInterval:setIntervalを含んだ変数を代入すると処理を止める
以上となります。
setTimeoutはjavaScriptを使用する上で大変便利な機能です。
構文はシンプルですが、クリックイベントなどと組み合わせることで色々な挙動を実現できます。当記事が理解の助けになれば幸いです。
また、当サイトでは初学者向けにゲームの作り方を紹介しております。
【JavaScript】リバーシ(オセロ)の作り方を初学者向けに1行づつ解説!①【ゲーム】
ゲームを作るのはとても勉強になりますし、モチベーション維持にもつながります。
興味があればご活用ください。