-2
A
回答
3
作爲每MDN,
返回timeoutID是數字的,非零值,它鑑別由所述呼叫創建的setTimeout計時器();可以將此值傳遞給Window.clearTimeout()以取消超時。
所以,當你做= setTimeout()
,你沒有得到你已經通過的東西的價值,但它是一個系統生成的標識符。
setTimeout
在指定的延遲後在事件堆中註冊一個事件。如果沒有提及延遲,則其假定爲0
,但注意,setTimeout(notify, 0)
與notify()
不相同。
另外setTimeout
需要一個函數作爲第一個參數。當它接收到一個字符串時,它假定你正在將函數調用作爲字符串傳遞,並且編譯器試圖使用eval
來評估它。所以你的setTimeout("1")
將變成eval("1")
這將返回"1"
,因此你不會得到錯誤。
function notify(){
console.log('ta-da!!!');
}
var a = 10;
setTimeout("notify()",0)
// sample for eval
console.log(setTimeout("a"))
// This should throw error as `b` is not declared
console.log(setTimeout("b"))
的setTimeout返回intervalID ...或許審查[文檔](https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/setTimeout)在返回值上會回答你的問題。 – Gerrit0