こんにちはフロントエンドエンジニアのまさにょんです!
今回は、JavaScriptのsetTimeoutとsetIntervalの違いと使い方・一定時間後、一定間隔で処理を実行する方法について解説していきます。
目次
setTimeout と setInterval の違いと使い方とは?
JavaScriptのsetTimeoutとsetIntervalの違いと使い方のポイントは、その英単語が示すとおりです。
Timeoutは「指定した時間の経過」を意味しており、指定した時間の経過を待って関数を実行するのがsetTimeout()
です。
また、Intervalは「間隔」を意味しており、指定した間隔(時間経過)ごとに処理を実行するのがsetInterval()
になります。
つまり、「一定時間後に処理を実行する」(Timeout) か「一定時間ごとに処理を実行する」(Interval) かの違いがあります。
それでは、実際にCodeで動作を確認していきます。
一定時間後に処理を実行したい: setTimeout(関数, ミリ秒)
一定時間後に処理を実行したい場合は、setTimeout(関数, ミリ秒) の形で、時間の指定と関数の設定を実施します。
console.log(`JavaScript起動時刻: ${new Date().toLocaleTimeString()}`);
// 1. 一定時間後に処理を実行したい: setTimeout(関数, ミリ秒)
const timerId = setTimeout( () => {
console.log(`1秒後に、setTimeout起動: ${new Date().toLocaleTimeString()}`);
}, 1000);
const timerId2 = setTimeout( () => {
console.log(`2秒後に、setTimeout起動: ${new Date().toLocaleTimeString()}`);
}, 2000);
const timerId3 = setTimeout( () => {
console.log(`3秒後に、setTimeout起動: ${new Date().toLocaleTimeString()}`);
}, 3000);
一定時間後の処理を解除したい: clearTimeout(タイマーID)
setTimeout の処理をキャンセルしたい場合は、clearTimeout(タイマーID) とすると予定していたタイマー処理をキャンセルできます。
上記のタイマーIDとはsetTimeout()
の返り値です。このタイマーIDをclearTimeout()
に渡せば、一定時間後に予定していた処理を解除できます。
console.log(`JavaScript起動時刻: ${new Date().toLocaleTimeString()}`);
const timerId = setTimeout( () => {
console.log(`1秒後に、setTimeout起動: ${new Date().toLocaleTimeString()}`);
}, 1000);
const timerId2 = setTimeout( () => {
console.log(`2秒後に、setTimeout起動: ${new Date().toLocaleTimeString()}`);
}, 2000);
const timerId3 = setTimeout( () => {
console.log(`3秒後に、setTimeout起動: ${new Date().toLocaleTimeString()}`);
}, 3000);
console.log('timerId', timerId);
console.log('timerId2', timerId2);
console.log('timerId3', timerId3);
// 2. 一定時間後の処理を解除したい: clearTimeout(タイマーID)
clearTimeout(timerId2);
一定時間ごとに処理を実行したい: setInterval(関数, ミリ秒)
一定間隔で処理を実行したい場合は、setInterval(関数, ミリ秒) の形で、時間の指定と関数の設定を実施します。
アニメーションの関数を呼び出すなど、一定間隔で周期的に何か動作・処理を実行させたいときに役立ちます。
console.log(`JavaScript起動時刻: ${new Date().toLocaleTimeString()}`);
// 3. 一定時間ごとに処理を実行したい: setInterval(関数, ミリ秒)
const intervalId = setInterval(() => {
console.log(`1秒間隔で、setInterval起動: ${new Date().toLocaleTimeString()}`);
}, 1000);
const intervalId2 = setInterval(() => {
console.log(`2秒間隔で、setInterval起動: ${new Date().toLocaleTimeString()}`);
}, 2000);
一定時間ごとの処理を解除したい: clearInterval(インターバルID)
setInterval の処理をキャンセルしたい場合は、clearInterval(インターバルID) とすると予定していたタイマー処理をキャンセルできます。
上記のインターバルIDとはsetInterval()
の返り値です。このインターバルIDをclearInterval()
に渡せば、一定時間ごとに予定していた処理を解除できます。
console.log(`JavaScript起動時刻: ${new Date().toLocaleTimeString()}`);
const intervalId = setInterval(() => {
console.log(`1秒間隔で、setInterval起動: ${new Date().toLocaleTimeString()}`);
}, 1000);
const intervalId2 = setInterval(() => {
console.log(`2秒間隔で、setInterval起動: ${new Date().toLocaleTimeString()}`);
}, 2000);
// 4. 一定時間ごとの処理を解除したい: clearInterval(インターバルID)
clearInterval(intervalId2);
JavaScript書籍 Ver. 中級-上級者向け
JavaScript書籍 Ver. 初級者向け
プログラミング学習・エンジニア転職関連の情報
自宅で現役エンジニアから学べる『TechAcademy』 (エンジニア転職保証)
『GEEK JOBキャンプ』スピード転職コース(無料)
【IT道場】入校時0円! 就職目的プログラミングスクール
エンジニア転職なら100%「自社開発」求人に強い【クラウドリンク】
『techgym』 (Python特化・無料)
Twitterやってます!Follow Me!
神聖グンマー帝国の逆襲🔥
神聖グンマー帝国の科学は、世界一ぃぃぃぃぃぃ!!!!!