想要写一个间隔循环的事件,让一个循环每隔三秒执行一次,往浏览器循环打印数据,一开始是这样写的
<body>
<button onclick="show()">点我</button>
<script>
function show() {
for(var i = 0;i < 10;i++){
setTimeout(() => {
document.write("<p>" + i + "</p>");
}, 3000);
}
}
</script>
</body>
但这种写法会在点击完按钮三秒钟之后一下执行完十次循环,结果是这样
用下面这种方式可以实现
<body>
<button onclick="show()">点我</button>
<script>
function show() {
var i = 0;
setInterval(function() {
if(i < 10) {
i++;
document.write("<p>" + i + "</p>");
}
}, 3000);
}
</script>
</body>
效果如下
这种写法可以实现每隔三秒打印一个数
注:setInterval()方法和setTimeout()方法都是HTML DOM Window对象的方法,原先语法分别为window.setInterval(xxFunction,yyMilliseconds)和window.setTimeout(xxFunction,yyMilliseconds),参数一xxFunction是定时执行的函数,参数二yyMilliseconds是间隔的毫秒数,并且两者都可以省略window.
setInterval()-------间隔指定的毫秒数不停执行指定函数
setTimeout()-------在指定的毫秒数后执行指定代码