指定された時間の経過後に指定されたコードまたは関数を非同期に実行するには「setTimeout関数」「setInterval関数」が使えます。
setTimeout関数とは
JavaScriptのsetTimeout
関数は、指定された時間の経過後に、指定されたコードまたは関数を非同期に実行するための方法です。
以下はsetTimeout
関数の基本的な構文です。
setTimeout(callback, delay, arg1, arg2, ...)
callback
は遅延後に実行される関数または実行するコードブロックです。delay
は遅延時間をミリ秒単位で指定します。指定した時間が経過した後にcallback
が実行されます。arg1, arg2, ...
はオプションの引数で、callback
に渡す引数を指定します。
setTimeout
はタイマーを設定して、指定した時間が経過するとコールバック関数が呼び出されます。以下はsetTimeout
の使用例です。
function myFunction() {
console.log("Hello, world!");
}
// 10秒後にmyFunctionを実行
setTimeout(myFunction, 10000);
上記の例では、10秒後にmyFunction
が呼び出され、コンソールに”Hello, world!”というメッセージが表示されます。
setTimeout
は非同期で実行されるため、指定した遅延時間が厳密に保証されるわけではありません。
ブラウザの実行状況や他のタスクの負荷によって遅延が生じる場合があります。
setInterval関数とは
setTimeout
は一度だけコールバックを実行するため、繰り返し実行する場合はsetInterval
関数を使用する必要があります。
以下の例では、1秒ごとにmyFunction
が呼び出されます。
function myFunction() {
console.log("Hello, world!");
}
// 1秒ごとにmyFunctionを実行
setInterval(myFunction, 1000);
以下の例では、1秒ごとにmyFunction
が呼び出されて画面に現在時刻を表示します。
<p id="output"></p>
<script>
function myFunction() {
var currentDate = new Date();
var currentTime = currentDate.toLocaleString();
document.getElementById("output").innerHTML = currentTime;
}
// 1秒ごとにmyFunctionを実行
setInterval(myFunction, 1000);
</script>
まとめ
setTimeout
とsetInterval
は、JavaScriptにおいて非同期の操作やタイミングを制御するために非常に便利な機能です。
ただし、長時間のタイマーの設定や短時間の間隔での繰り返し実行では、適切な使い方と注意が必要です。