【JavaScript】「setTimeout()」と「clearTimeout()」の使い方!【分かりやすい】
しゅーた(@chibasyuta)です!
今回はJavaScriptの基本的な組み込み関数の「setTimeout()」と「clearTimeout()」について解説します。
時間を指定してコードを遅延実行したいときに使える便利な関数です。
初心者の方でも理解しやすいように、例を交えながら説明していきます!
この記事の内容!
- 「setTimeout()」で関数を遅延実行する方法
- 「clearTimeout()」でタイマーをキャンセルする方法
それでは内容へ入ります!
「setTimeout()」とは?
setTimeout(関数, 遅延時間);
関数: 実行したいコードまたは関数を指定します。
遅延時間: 実行までの遅延時間(ミリ秒単位)を指定します。1秒 = 1000ミリ秒です。
簡単な使用例!
setTimeout(() => {
console.log("2秒が経過しました!");
}, 2000);
例えば、上記は2秒後にメッセージを表示するコードになります。
このコードを実行すると、2秒後にコンソールに「2秒が経過しました!」と表示されます。
第二引数の単位は「ミリ秒」なので注意しましょう!
関数を別で定義して使う
function showMessage() {
console.log("3秒後にこのメッセージが表示されます!");
}
setTimeout(showMessage, 3000);
このようにすると、コードが読みやすくなり、再利用もしやすくなります。
引数を渡す方法
function greet(name) {
console.log(`こんにちは、${name}さん!`);
}
// 2秒後に関数を実行し、"太郎"を渡す
setTimeout(greet, 2000, "太郎");
「setTimeout()」のキャンセル方法
const timerId = setTimeout(() => {
console.log("このメッセージは表示されません!");
}, 5000);
// タイマーをキャンセル
clearTimeout(timerId);
setTimeout()で設定したタイマーをキャンセルするには、clearTimeout()を使用します。
「setTimeout()」の「返り値」は「timeoutID」と呼ばれます。この「timeoutID」を「clearTimeout()」の引数に与えてあげれば、その「timeoutID」に紐づく「setTimeout()」の処理がキャンセルされます。
このように「timeoutID」はキャンセルする「setTimeout()」の識別のために使われるのです。
clearTimeout(timeoutID)を呼び出すと、タイマーが無効化され、関数は実行されません。
参考リンク!
仕様書。
https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-settimeout-dev
https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-cleartimeout-dev
MDN。
https://developer.mozilla.org/ja/docs/Web/API/Window/setTimeout
https://developer.mozilla.org/ja/docs/Web/API/Window/clearTimeout
おすすめの再生リスト!
こちらは僕が制作したYouTubeの再生リスト「JavaScriptの入門編」です。
「JavaScriptの入門編」はWeb制作を勉強している方がJavaScriptに入門する際に知っておきたい情報をまとめたコンテンツとなります。
こちらの再生リストで「JavaScript」について「丁寧」に解説しているので、もし気になる方はチェックしてみてください!一緒に楽しく学習しましょう!!
まとめ!
setTimeout()は、シンプルながら非常に強力な関数です。以下のポイントを押さえておきましょう。
- 指定した遅延時間の後に一度だけ関数を実行。
- 遅延時間はミリ秒単位。
- clearTimeout()でタイマーをキャンセル可能。
イベント処理やアニメーションの制御など、さまざまな場面で役立つので、ぜひ覚えて活用してみてください!
それではまたっ!