setTimeout的做用以及setTimeout延時0毫秒的做用

如下代碼輸出的順序是?javascript

console.log(1);
setTimeout(function(){
console.log(2);
}, 0);
setTimeout(function(){
console.log(3);
}, 1000);
console.log(4);

答案是:java

1
4
2
3

 

 

常常看到setTimeout延時0ms的javascript代碼,感到很迷惑,難道延時0ms和不延時不是一個道理嗎?後來經過查資料以及實驗得出如下兩個做用,可能還有做用我還不知道,但願得知的朋友在後面評論上不吝指出。
一、實現javascript的異步;
正常狀況下javascript都是按照順序執行的。可是咱們可能讓該語句後面的語句執行完再執行自己,這時就能夠用到setTimeout延時0ms來實現了。
如: 
alert(1); 
setTimeout("alert(2)", 0); 
alert(3); 
雖然延時了0ms,可是執行順序爲:1,3,2 
這樣就保證setTimeout裏面的語句在某一代碼段中最後執行。 異步

相關文章
相關標籤/搜索