A very good article, but worthwhile to note it's from 2008. Key take-aways: The single-threaded nature of JavaScript and the interaction between this and asynchronous callbacks. Because of this, getting timers to execute exactly when requested can be problematic.