我试着查了一下,发现了一段我不太明白的代码。
<p>Count the number of milliseconds between the two click events on a paragraph </p>
<div>Click on the above paragraph</div>
$(document).ready(function() {
var lastt, tdiff;
$("p").click(function(event){
if(lastt){
tdiff = event.timeStamp - lastt;
$("div").append("Time since last event: " + tdiff + "<br>");
}else{
$("div").append("<br>Click again.<br>");
}
lastt = event.timeStamp;
});
});
我的问题如下:
什么意思?这是一个变量,怎么可能
对/错?
如何在分配
if(lastt)
之前计算tdiff?为什么最后一个在if和else语句之后而不是之前?
最佳答案
1-如果(lastt)是什么意思?
语句检查是否设置了lastt
变量。在第一次单击时,值是null
(一个错误的值),函数只是添加一个p
元素。
它是一个变量,所以它怎么可能是真/假的?
变量可以有布尔值。为什么不?但这里的重点不是检查布尔值。if
语句用于检查是否设置了该值,即lastt
不是null
。时间戳是一个数字,任何不0
的数字在JavaScript中都被视为真实值。
2-如何在分配LAST之前计算tdiff?
这并不是真的发生。第一次单击时,处理程序不计算任何内容。
为什么最后一个在if和else语句之后而不是之前?
为了检查2个时间戳的差异,需要使用lastt
。新的lastt
将在处理程序的下一次调用中使用,因此需要在计算之后对其进行设置。