为什么这两个JavaScript Date对象不一样?

时间:2011-03-01 05:01:52

标签: javascript

我是一名初学者,正在阅读有关JavaScript中日期的教程,它给出了这个例子来比较两个事件之间的时间。

我真的不明白为什么firstDate和var secondDate不会完全相同? var secondDate中的新Date对象是否仅在触发doEvent时占用时间,而firstDate在window.onload中占用时间?

另外,为什么变量firstDate没有“var”标签,而变量secondDate呢?这只是作者的一个错字,还是以某种方式显着?

var firstDate;
window.onload=startTimer;

function startTimer(){
 firstDate = new Date();
 document.getElementById("date").onclick=doEvent;
}

function doEvent() {
 var secondDate = new Date();
 alert((secondDate - firstDate) / 1000);
}

1 个答案:

答案 0 :(得分:3)

你的猜测是完全正确的。 firstDate事件发生的时间window.loadsecondDate是点击ID为date的元素的时间。


在re:您的修改中, 一个var也可以与firstDate一起使用 - 它超出了startTimer的范围。 不是是一个错字。 firstDate需要在startTimerdoEvent函数的范围之外定义,以便它在doEvent函数内部具有有意义的值。

阅读JavaScript scoping可能对您有用。