MyFunction() vs window.setTimeout('MyFunction()', 0)?
<p>In javascript, is there any different between these two:</p>

<pre><code>// call MyFunction normal way 

MyFunction();

// call MyFunction with setTimeout to 0 //

window.setTimeout('MyFunction()', 0);
</code></pre>

<p>The reason I asked was because recently came across the situation where the code only works if I use <code>setTimeout(0)</code> to call the function. 
To my understanding, <code>setTimeout(0)</code> is exactly same as calling a function directly because you dont set any delay. But from what I see how it works in the code, <code>setTimeout(0)</code> seems to get executed last.</p>

<p>Can someone clarify exactly how <code>setTimeout(0)</code> really get called in order of the rest of other function call?</p>
