≪ Today I learned.
RSS購読
    公開日
    タグ
    JavaScript
    著者
    ダーシノ

    setInterval()、setTimeout()は内部的にeval()を使っている(場合もある)

    setInterval()setTimeout()の第1引数に文字列を渡すと、eval()で実行される。 文字列を渡す構文は推奨されていないが、コードゴルフなどコードを極力短く書きたいときには有効な場合がある。

    let i = 0
    setInterval('console.log(i++)',100)
    
    > 6 // ← タイマーのID
    > 0
    > 1
    > 2
    > ...

    関数の代わりに文字列を含める構文も許容されており、 delay ミリ秒が経過するたびに文字列をコンパイルして実行します。 https://developer.mozilla.org/ja/docs/Web/API/setInterval

    関数の代わりに文字列を含める代替構文も許容されており、タイマーが満了したときに文字列をコンパイルして実行します。 https://developer.mozilla.org/ja/docs/Web/API/setTimeout