[javascript] Why is setTimeout(fn, 0) sometimes useful?