JavaScriptでは一定時間後に処理を実行したいときによく使うのがsetTimeout
です。そして、その実行を取り消すときにはclearTimeout
を使います。
この記事では、setTimeout
とclearTimeout
について、以下の内容をサンプルコードを用いてわかりやすく解説します。
setTimeout
とは?setTimeout
の構文setTimeout
のサンプルコード
clearTimeout
とは?clearTimeout
の構文clearTimeout
のサンプルコード
setTimeout
とsetInterval
の違い
setTimeoutとは?

setTimeout
は、指定した時間が経過した後に1回だけ処理を実行する関数です。
例えば、
- ページ表示後に1秒遅らせてメッセージを出す
- ローディング中に3秒待ってから次の処理に進む
といった場合に使います。
setTimeoutの構文
const timeoutId = setTimeout(function, delay, arg1, arg2, ...);
function
→ 実行したい関数または無名関数。delay
ミリ秒後に1回だけ実行される。delay
→ 実行までの待ち時間(ミリ秒単位。1000ミリ秒 = 1秒)。指定されなかった場合の既定値は0ミリ秒。arg1, arg2, ...
→ 関数に渡す引数(省略可)timeoutId
→ 後で停止させるときに使うID(clearTimeout
を使う場合に必要)
setTimeout
のサンプルコードを以下に示します。
setTimeout(() => {
console.log('1秒後に1回だけ実行されます');
}, 1000);
// ログ(1秒後) ↓
// 1秒後に1回だけ実行されます
上記のサンプルコードでは、1000ミリ秒(1秒)後にconsole.log('1秒後に1回だけ実行されます')
を実行しています。
clearTimeoutとは?
clearTimeout
は、setTimeout
で登録した処理をキャンセルする関数です。setTimeout
が返すID(例: timeoutId
)をclearTimeout
に渡すことで、登録した処理をキャンセルすることができます。
たとえば、ユーザーが何らかの操作をして待機処理が不要になった場合、clearTimeout
を使って無駄な実行を防ぎます。
clearTimeoutの構文
clearTimeout(timeoutId);
timeoutId
→setTimeout
が返したID
clearTimeout
のサンプルコードを以下に示します。
const timeoutId = setTimeout(() => {
console.log('3秒後に1回だけ実行されます');
}, 3000);
// 1秒後にタイマーをキャンセル
setTimeout(() => {
clearTimeout(timeoutId);
console.log('タイマーをキャンセルしました');
}, 1000);
// ログ(1秒後) ↓
// タイマーをキャンセルしました
上記のサンプルコードでは、3000ミリ秒(3秒)にconsole.log('3秒後に1回だけ実行されます')
が実行される予定でしたが、1秒後にclearTimeout
が呼ばれているので、setTimeout
で登録した処理がキャンセルされ、console.log('タイマーをキャンセルしました')
が実行されます。そのため、console.log('3秒後に1回だけ実行されます')
は実行されません。
setTimeoutとsetIntervalの違い
setTimeout
と似た関数にsetInterval
があります。これらの違いは、指定した時間が経過した後に「1回だけ実行するか(setTimeout
)」「繰り返し実行するか(setInterval
)」という点です。
項目 | setTimeout | setInterval |
---|---|---|
処理の回数 | 1回だけ実行 | 繰り返し実行 |
処理の間隔 | 指定時間後に1回だけ実行 | 毎回一定の間隔で実行 |
停止の方法 | clearTimeout(timeoutId) | clearInterval(intervalId) |
setInterval
のサンプルコードを以下に示します。
setInterval(() => {
console.log('繰り返し実行');
}, 1000);
あわせて読みたい
『setInterval』については下記の記事で詳しく説明しています。興味のある方は下記のリンクからぜひチェックをしてみてください。 続きを見る【JavaScriptの繰り返し処理】setIntervalとclearIntervalの使い方!
本記事のまとめ
この記事では、setTimeout
とclearTimeout
について、以下の内容を説明しました。
setTimeout
→ 一定時間後に1回だけ実行clearTimeout
→setTimeout
の処理をキャンセル
setInterval
→ 一定間隔で繰り返し実行
お読み頂きありがとうございました。