javascript - 为什么这段代码输出结果是十个10呢?
本文介绍了javascript - 为什么这段代码输出结果是十个10呢?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
for(i=0;i<10;i++){
setTimeout("console.log(i)",0);
}
为什么输出结果是十个10呢?还有,前面先输出的304是什么?每次输出那个值都不一样。
解决方案
为什么输出结果是十个10呢?
setTimeout是异步的,在这里,当for循环结束之后才开始执行队列中的代码,那for结束之后 i
是多少呢? 10.
解决方法是闭包,这篇文章有详细解读你的例子
前面先输出的304是什么?
timeoutID
: 标示当前的计时器,可以用于清除该定时器 window.clearTimeout(timeoutID)
这篇关于javascript - 为什么这段代码输出结果是十个10呢?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文