window.setTimeout(somefunc,0);
сразу запустит somefunc (но не будет ждать возвращаемого значения, прежде чем продолжить)
window.setTimeout(somefunc,n);
будет ждать n миллисекунд перед запуском somefunc (но не будет ждать его запуска или возврата, прежде чем продолжить)
или если вы позвоните somefunc()
без таймаута, он запустится somefunc, но дождитесь его завершения, прежде чем продолжить.
Рассматривайте setTimeout как "запуск" нового потока.