0
我有一個問題的Javascript setInterval的if語句不能正常工作
var timer = setInterval(function(){
// the date of new date is ofcourse a date in the future
if (Date.now() == Date.parse(new Date(2014, 1, 13, 13, 4, 0, 0))){
console.log('refresh done');
clearInterval(timer);
}
}, 1);
但是,如果我改變==
到>=
它將正確執行。這是因爲Date.now()
會變化得如此之快,以至於在比較發生之前它被改變了嗎?
但是'Date.now()'是* not *'13。 1. 2014年13:04'。這可能更像'13.1。 2014 13:04:21.165'。如果您不希望數據相等,則無法比較平等:) – Luaan
是的,間隔發生的次數比平等檢查少得多。這是原因。 'Date.now()'的作品是毫秒級的解析http://people.mozilla.org/~jorendorff/es6-draft.html#sec-time-values-and-time-range –
@Luaan這不是事實。執行以下代碼:'console.log(Date.now());'這將返回一個時間戳。 @Benjamin Gruenbaum好的,謝謝你的回答。我已經認爲它是這樣的:) – GuyT