【发布时间】:2020-07-02 23:16:57
【问题描述】:
我读到 setTimeout 函数只运行一次,而 setInterval 函数无限运行。但是在我从 w3schools setTimeout 中挑选的这个数字时钟代码中,它也无限运行。和onload方法有关系吗?
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function startTime() {
var today = new Date();
var h = today.getHours();
var m = today.getMinutes();
var s = today.getSeconds();
m = checkTime(m);
s = checkTime(s);
document.getElementById('txt').innerHTML =
h + ":" + m + ":" + s;
var t = setTimeout(startTime, 500);
}
function checkTime(i) {
if (i < 10) {
i = "0" + i
}; // add zero in front of numbers < 10
return i;
}
</script>
</head>
<body onload="startTime()">
<div id="txt"></div>
</body>
</html>
【问题讨论】:
-
startTime() 函数包含对 setTimeout 的调用,而 setTimeout 调用 startTime(),因此它无限运行。
标签: javascript html