我是一名初学者,正在阅读有关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);
}
答案 0 :(得分:3)
你的猜测是完全正确的。 firstDate
事件发生的时间window.load
,secondDate
是点击ID为date
的元素的时间。
在re:您的修改中, 一个var
也可以与firstDate
一起使用 - 它超出了startTimer
的范围。 不是是一个错字。 firstDate
需要在startTimer
和doEvent
函数的范围之外定义,以便它在doEvent
函数内部具有有意义的值。
阅读JavaScript scoping可能对您有用。