setTimeoutを使って、1秒おきに配列の中身を表示

HTAなどの場合WScript.sleepを使えないので、変わりになるものはなんだろうと思い
検索して調べたら、どうやらsetTimeoutがsleepに該当する様子。
しかしこれがどうにもこうにもわかりづらい。


WScript.sleepと違って、setTimeoutを実行しても指定した秒数を待たずに
とっとと先に進んでしまい、しかも指定した関数にはfunctionなどを呼び出す以外は
"や'を付けないといけないらしく、で、四苦八苦した結果
どうにかfor文で配列の中身を表示させることが出来た。

<body>
    <input type="text" name="msg">
<script type="text/jscript">
    var ss = new Array("aa", "bb", "cc");
    for (var i = 0; i < ss.length; i ++)
        setTimeout("msg.value += '" + ss[i] + "'", 1000 * (i + 1));
</script>
</body>

入力ボックスにaa、bb、ccを1秒ごとに表示。
何回もエラーを繰り返した挙句、やっとこさ原因がわかったのはss[i]を'で括ってないからだった。
指定する秒数はその都度増やしていかないとだめな様子で、上記の場合は倍にしているけれど
これが果たしてきっちり1秒おきなのかは、私にわかるわけがない。
まだ完全に理解できたわけではないけれど、これくらい出来れば私には十分かもしれない。


配列作るのこれ↓でもいいんだね?

var ss = ["aa", "bb", "cc"];

つい先ほど、偶然見たサイトで知った。