title: Can't understand the minimal timeout value in `setTimeout()`
body: <p>I see in some question <a href="https://stackoverflow.com/questions/9647215/what-is-minimum-millisecond-value-of-settimeout">What is minimum millisecond value of setTimeout?</a> people talk about the "minimal timeout of setTimeout", but I can't really understand it.</p>
  
  <p>It says the minimal timeout value in HTML5 spec is <code>4ms</code>, so I think, if I run following code in browsers (say Chrome):</p>
  
  <pre><code>setTimeout(function() { console.log("333"); }, 3);
  setTimeout(function() { console.log("222"); }, 2);
  setTimeout(function() { console.log("111"); }, 1);
  setTimeout(function() { console.log("000"); }, 0);
  </code></pre>
  
  <p>the output should be:</p>
  
  <pre><code>333
  222
  111
  000
  </code></pre>
  
  <p>But actually it is:</p>
  
  <pre><code>111
  000
  222
  333
  </code></pre>
  
  <p>Seems like they still be run according to the specified timeout even if they are less than 4 (expect the <code>0</code> and <code>1</code>)</p>
  
  <p>How should I understand the value <code>4ms</code>?</p>