プログラミングではタイマー処理を行いたいことがあります。JavaScriptでは、指定時間後に関数を呼び出すsetTimeout()と、指定した時間間隔ごとに繰り返し関数を呼び出すsetInterval()があります。
ここでは、指定した時間後に関数を一度だけ呼び出すsetTimeout()について説明します。
setTimeout()の記述方法
1 |
setTimeOut('関数', 時間); |
関数を実行するまでの時間はミリ秒単位で指定します。1秒が1000m秒です。
サンプルプログラム
次のサンプルプログラムは5秒後に"Hello, world!"というアラートを表示する例です。
1 |
setTimeout('alert("Hello, world!")', 5000); |
setTimeout()を使う上での注意点
setTimeout()は指定した時間後に関数を呼び出しますが、他の命令に制御が移らないということではありません。次のプログラムの出力結果は「a」,「b」,「c」ではなく「a」,「c」,「b」の順になります。
1 2 3 |
console.log("a"); setTimeout('console.log("b");', 5000); console.log("c"); // console.log()が実行されるまで5秒待つわけではない |
また、setTimeout()は必ずしも指定した時間後に関数が呼び出されるとは限りません。その前に時間のかかる重い処理があった場合はその処理にかかった分だけ遅れて実行されるので注意が必要です。