setTimeout()
Не выполняйте данную функцию «Через X секунд после этого вы объявите это», «За кулисами» этот метод помещает заданную функцию в стек, который будет выполнен «X секунд после этого, код в выполнении контекст были выполнены, в данном случае, когда линия 1 и линия 4 вашего кода была выполнена»
в качестве примера
setTimeout(function() {
console.log('four');
}, 10);
console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
console.log('three');
// Вывод:„один“,„три“," два ',' четыре '
За кулисами:
В контексте выполнения
console.log('one');
console.log('three');
после контекста выполнения setTimeout(fn, ms)
сортировки в порядке второго параметра в миллисекундах:
console.log('two');//0 ms after the execution context has been executed.
console.log('four'); //10ms after the execution context has been executed
EDIT: Были искать ссылку, в следующий ответ объясняет графически, как работает очередь javascript-браузера, проверьте это!
Вы можете прочитать на этих http://stackoverflow.com/questions/779379/why-is-settimeoutfn-0-sometimes-useful –