需要准备的材料分别有:电脑、html编辑器、浏览器。
1、首先,打开html编辑器,新建html文件,例如:index.html。
2、在index.html中的<script>标签,输入js代码:。
for (var i = 0i<3i++) {
var a = i + ':' + (new Date())
$('body').append(a)
for (var j = 0j <700000000j++)
}
3、浏览器运行index.html页面,此时循环中的内容被延迟执行了。
我们先来看一个例子
在JS方法里面设置一个for循环,输出每次循环的值,如下图
我们可以根据闭包的知识来更改一下for循环中的逻辑,利用闭包将i的值传递给a
这次在运行程序我们就可以看到输出内容是0开始输出了
结果如下图
JS中如果for循环中有异步方法,就需要用闭包的方式保留当前循环变量值
不到万不得已、山穷水尽的地步,请尽量不要在循环中做延迟处理,因为这会造成整个网页都卡住甚至崩溃,应该尽量利用定时器或计时器去解决。比如下面这个for循环是依次显示0到9这十个数字,由于未做延迟处理,整个过程是瞬间完成的:
<script>
for(var i=0i<10i++){
document.querySelector("#test").innerHTML+=i+" "
}
</script>如果要实现每隔1秒显示一个数字,则这样:
<script>
var i=0
setTimeout(function x(){
document.querySelector("#test").innerHTML+=i+++" "
if(i<10)setTimeout(x,1000)
},1000)
</script>