代码描述:setTimeout()函数延迟 循环语句异常。setTimeout()函数延迟循环语句异常简单介绍
本章节介绍一下使用setTimeout()来延迟循环导致异常简单介绍。 其实不能说异常,准确的说应该原本就是如此,只是比较让人迷惑而已。 先看一段代码实例:
<script> for(var index=0;index<10;index++){ setTimeout(function(){ console.log(index); },0); } </script>
上面的代码很多朋友可能第一眼看到的时候,认为会一次输出0-9,但是事实并非如此,而是输出的每一个都是10。 之所以这样是因为使用setTimeout()函数后,会产生异步操作,当for循环执行执行完毕后,index的值已经变为10,所以输出的每一个值都是10,下面代码修改如下:
<script> for(var index=0;index<10;index++){ setTimeout((function(index){ return function(){ console.log(index); } })(index),0); } </script>
请绑定手机号,在继续操作
注意:只有绑定手机以后,才可使用网站全部功能