2015-02-10 20 views
-5

以下程序的輸出是什麼?爲什麼?在Javascript中使用setimeout

setTimeout(function() { 
    console.log("hi"); 
}, 0); 

//Do some calculation for 3-4 secs or more over here 
console.log("Bye"); 

我無法模擬,因爲我不知道如何把3-4秒的計算。此外,如果值是再見和比你好,爲什麼呢?

+0

你想用代碼實現什麼? – meza 2015-02-10 15:54:45

+1

[RTM - Mozilla開發者網絡 - setTimeout()參考](https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers.setTimeout「Mozilla開發者網絡:setTimeout()參考」) – AeroX 2015-02-10 15:55:49

+0

@梅紮在採訪中被問到了我。面試官寫了0秒作爲延遲。 – 2015-02-10 16:10:56

回答

1

輸出是 1.Bye 2.hi

爲什麼?即使超時時間爲0毫秒,函數也會通​​過setTimeout提供給callstack,但在此之前,callstack已經存在console.log(「Bye」)。這就是爲什麼它被執行得更早。