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

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